linux下mysql的安装
一.下载
http://dev.mysql.com/downloads/mysql/
选择对应的版本,这里选择“Linux-Generic”
以64位系统为例,这里需要下载如下两个文件:
MySQL-client-5.6.10-1.linux_glibc2.5.x86_64.rpm
MySQL-server-5.6.10-1.linux_glibc2.5.x86_64.rpm
二.安装
root用户安装
在下载路径下执行命令:
rpm -qa | grep mysql:查询系统是否安装了mysql包
如果安装先卸载,因为系统自带的基本都是老版本。
rpm -e mysql-libs-5.1.66-2.el6_3.x86_64 --nodeps:卸载mysql包
先安装服务
rpm -ivh MySQL-server-5.6.10-1.linux_glibc2.5.x86_64.rpm
rpm -ivh --replacepkgs --replacefiles MySQL-server-5.6.10-1.linux_glibc2.5.x86_64.rpm
--replacepkgs:如果已经安装,可以使用该选项覆盖安装
--replacefiles:如果遇到文件冲突,使用该命令可以解决
接着安装客户端
rpm -ivh MySQL-client-5.6.10-1.linux_glibc2.5.x86_64.rpm
三.配置启动文件
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
vi /etc/my.cnf
[mysqld]下增加如下信息:
port= 3306 #端口
default-character-set=utf8 #字符编码 5.5以上版本要配置为character-set-server=utf8
wait_timeout=288000 # 链接超时,默认为8小时,单位为秒
四.启动与关闭mysql
/etc/init.d/mysql start/stop
或者
service mysql start/stop/restart
mysql安装完成默认就是会随系统启动的,可以使用如下命令查看mysql的运行级别:
chkconfig --list mysql
修改mysql的运行级别为35启动:
chkconfig --level 35 mysql on
五.登录mysql
第一次登录使用root的默认密码,安装完成后默认root密码保存在当前root用户的home/.mysql_secret中
mysql -u root -p
登录成功够必须先修改密码,如下:
mysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
六.开放访问权限
登录后分别执行如下命令,开放root的远程登录权限,需要在iptables中开放3306端口
mysql>grant all PRIVILEGES on *.* to root@'%' identified by 'newpwd';
mysql>grant all PRIVILEGES on *.* to root@'localhost' identified by 'newpwd';
mysql>flush privileges;
七.创建新的数据库
mysql>create database newdbtest;
mysql>use newdbtest;(打开库)
八.创建新的用户并授权
mysql> grant all PRIVILEGES on newdbtest.* to newdbuser@'%' identified by '123456';
九.取消root远程登录权限
mysql>revoke all PRIVILEGES on *.* from root@'%' identified by 'newpwd';
十.备份与恢复
备份newdbtest :mysqldump -p --opt newdbtest > back_newdbtest
Enter password: root密码
恢复newdbtest :mysql -u root -p newdbtest < back_newdbtest
Enter password: root密码
十一.取消大小写区分
Linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;
用root帐号登录后,在/etc/my.cnf中的[mysqld]后添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;
lower_case_table_names参数详解:
lower_case_table_names=0
其中0:区分大小写,1:不区分大小写
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。
十二.开启慢查询和bin-log日志
在/etc/my.cnf中的[mysqld]后添加如下内容:
long_query_time=2 #慢查询记录超过的时间,这里只2秒
slow-query-log=1 #开启慢查询日志
log_queries_not_using_indexes=1 #记录下没有使用索引的查询语句
log_bin=mysql-bin #开启bin-log日志
说明:相关日志文件默认在/data/mysqldb下。
关于bin-log的操作可以参考:http://blog.chinaunix.net/uid-25266990-id-3359560.html
注:5.6以后的版本与之前的版本配置参数上略有不同,可以使用如下命令查看支持的参数列表:
mysqld --verbose --help #是否设置成功也可以通过该命令查看
可以使用mysqldumpslow命令查看慢查询日志信息:
mysqldumpslow -s c -t 20 host-slow.log
mysqldumpslow -s r -t 20 host-slow.log
上述命令可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。
mysqldumpslow -t 10 -s t -g “left join” host-slow.log这个是按照时间返回前10条里面含有左连接的sql语句。
十三.意外被锁
由于某种原因导致mysql意外停止,比如直接杀掉了myslq的进程,这样会导致mysql被锁:
[root@localhost ~]# service mysql status
MySQL is not running, but lock file (/var/lock/subsys/mysql) exists[失败]
解决方法是,删除/var/lock/subsys/mysql文件即可。
常用mysql命令:
1.登录
mysql -u用户名 -p密码 -h服务器IP地址 数据库 :登录并打开指定数据库,但这样做的缺点是密码要明文输入。
2.登录后命令
mysql> status; 查看数据库状态
mysql> select version(); 查看MySQL的版本号
mysql> select current_date(); 查看MySQL的当前日期
mysql> select version(),current_date(); 同时查看MySQL的版本号和当前日期
mysql> show databases; 显示当前存在的数据库
mysql> use mysql 选择使用数据库(USE和QUIT命令不需要分号结束)
mysql> select database(); 显示当前选择的数据库
mysql> show tables; 显示当前数据库中存在的表
mysql> select * from db; 显示表(db)的内容
mysql> describe[desc] mytable; 显示表的结构
或show columns from 表名;
mysql> select user,host,password from mysql.user; 查询用户信息
mysql> source mysql.sql; 执行sql脚本