由于公司需要更换新的架构,将采用MySQL5.7作为数据库的主要版本,下面将全面介绍在RedHat6.6上二进制安装MySQL5.7.13。后期也将依次介绍在MySQL5.7上的运维管理及优化。
1、下载MySQL5.7.13安装包
下载地址如下,现在的MySQL5.7稳定版已更新到5.7.14
http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz
2、新建MySQL用户和组
groupadd mysql
useradd -g mysql -r -s /sbin/nolgin mysql
3、新建相应的数据库目录
为了后期方便管理,新建如下目录分别存储MySQL的数据及日志等
mkdir -p /data/mysql/mysql_3306/{data,tmp,logs,mysql-bin}
4、解压MySQL安装包并重命名
tar -zxvf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.7.13-linux-glibc2.5-x86_64 mysql-5.7.13
5、软链接MySQL到/usr/local下
/usr/local/mysql为MySQL的basedir
ln -s /opt/mysql-5.7.13 /usr/local/mysql
6、授权MySQL相应权限
chown -R mysql:mysql /usr/local/mysql/
chown -R /data/mysql/mysql_3306/
7、修改my.cnf文件
这一步需要大家自己去研究了,基本MySQL5.6的参数在MySQL5.7上都有,但是有部分参数是不支持的,大家可以去MySQL5.7的官方手册上查找一下。
8、初始化MySQL
大家都知道,在MySQL5.7之后将不会采用mysql_install_db作为初始化脚本了,在MySQL5.7中采用了mysqld作为初始化脚本,初始化如下
/usr/local/mysql/bin/mysqld --user=mysql --datadir=/data/mysql/mysql_3306/data/ --basedir=/usr/local/mysql/ --initialize
9、将MySQL服务添加到系统控制并赋权
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
10、修改环境变量
echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
source /etc/profile
11、启动MySQL服务
service mysqld start
12、最好在启动完成之后检查下error.log和MySQL进程
error.log在/etc/my.cnf文件定义的位置,我这边是在/data/mysql/mysql_3306/data/目录下。
13、登陆MySQL
在MySQL初始化完成之后,会在/root目录下生成首次登陆MySQL的密码文件,文件名为.mysql_secreat
mysql -uroot -p`cat /root/.mysql_secreat`
14、修改MySQL登陆密码
如果大家进行到这一步了,基本就完成90%了,当你进入到MySQL命令行中敲击命令的时候,MySQL会提示你修改最新的登陆密码。
修改密码的方式有多种,不过建议大家用如下的方式修改:
alter user 'root'@'localhost' identified by 'xxxxxxx' ;
修改完成之后可以用如下命令刷新下,不过5.7之后测试可以不用这个命令刷新授权。
flush privileges
15、新开窗口验证登陆密码
在修改完密码之后呢,建议大家再新开一个窗口验证一下最好。
Q&A:
在初始化之后,在/root目录下并未产生.mysql_secreat,怎么办?
我碰到过这样的问题,在初始化命令结束之后没有任何返回,大家可以检查下MySQL的error.log,可能是你的my.cnf配置文件里面有一些参数是MySQL5.7之后没用的了,大家可以修改my.cnf文件,然后再重新初始化试一下。
上面的安装步骤是我自己亲自测试过的,可能有些不完善的地方,大家可以留言,我尽量解答一下。
后面也会有相应的MySQL5.7的管理、优化和复制等博文产出,希望大家支持,谢谢!