因为centos7的版本与mysql5.7的版本相对老版本都有变更,所以记录一下。
先安装mysql必用的rpm包:
yum -y install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Config-IniFiles ncftp perl-Params-Validate perl-CPAN perl-Test-Mock-LWP.noarch perl-LWP-Authen-Negotiate.noarch perl-devel
(perl-DBD-MySQ包安装的时候会安装MariaDB,下一步删除它)
检查是否安装NySQL,如果安装 卸载之rpm -qa |grep mysqlyum remove mysql*检查是否安装MariaDB,如果安装 卸载之(重要)rpm -qa |grep mariadbyum remove mariadb*
新增用户/组 参数文件groupadd mysqluseradd -d /home/mysql -g mysql -m mysqlpasswd mysqlmysql
#创建mysql数据存储路径mkdir /datamkdir /data/mysql# binlog存储路径mkdir /data/mysql/binlog# 错误日志存储路径mkdir /data/mysql/log# 磁盘临时表存储路径mkdir /data/mysql/tmp**
# 赋予mysql账户linux权限
chown -R mysql:mysql /data/mysql#解压缩二进制包
tar -xvf mysql-5.7.19-linux-glibc2.5-x86_64.tar.gz# 移动到/usr/local路径下mv mysql-5.7.19-linux-glibc2.5-x86_64 /usr/local/# 编译路径改名cd /usr/localmv mysql-5.7.19-linux-glibc2.5-x86_64 mysqlchown -R mysql:mysql /usr/local/mysql# 初始化mysql
./mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/mysql/data/ --user=mysql# 注册mysql命令echo "PATH=/usr/local/mysql/bin:\$PATH" >> /etc/profilesource /etc/profile# 设置开机启动cp ./mysql/support-files/mysql.server /etc/init.d/mysqldchown -R mysql:mysql /etc/init.d/mysqldchown -R mysql:mysql /etc/my.cnfchkconfig --add mysqldchkconfig mysqld on(使用优化版本的my.cnf需要添加indb02文件,并修改权限
dd if=/dev/zero of=indb02 bs=1M count=64
if=FILE : 指定输入文件,若不指定则从标注输入读取。这里指定为/dev/zero是的一个伪文件,它可以产生连续不断的null流(二进制的0)
of=FILE : 指定输出文件,若不指定则输出到标准输出
bs=BYTES : 每次读写的字节数,可以使用单位K、M、G等等。另外输入输出可以分别用ibs、obs指定,若使用bs,则表示是ibs和obs都是用该参数
count=BLOCKS : 读取的block数,block的大小由ibs指定(只针对输入参数))
service mysqld start
启动失败的时候,查看跟踪文件。
(找不到pid文件常见的报错有:1.之前启动失败,生成的索引文件没删除*.index,2没有跟踪文件,需要手动创建并修改权限,3锁文件没有删除)
查看初始密码
cat /root/.mysql_secret
或者grep 'temporary password' /var/log/mysqld.log
# 修改root密码
/usr/local/mysql/bin/mysqladmin -u root password 123456
mysql -uroot -p123456 -e "update mysql.user set password=password('123456') where user='root'; flush privileges;"或者ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';或者set PASSWORD=PASSWORD('root');
# 删除空账户
mysql -uroot -p123456 -e "delete from mysql.user where user=''; flush privileges;"# 允许外网使用root访问mysqlmysql -uroot -p123456 -e "grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;flush privileges;"exit
配置双向主从:
修改配置文件中的service_id和bin_log文件名。创建并授权repl用户同步,关闭GTID,show master status 记录binlog日志pos号,彼此changge master并开启。
注意权限问题。