一、mysql安装(根据官方步骤https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/)
#查看可用的mysql包,如果没有进行第1、2步下载
yum repolist all | grep mysql
1.下载RPM包
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
2、安装RPM包,自行替换包名
rpm -Uvh mysql80-community-release-el6-n.noarch.rpm
安装RPM后使用 yum repolist all | grep mysql 查看可用的安装包,显示启动的为可安装包
3.禁用8.0,启用5.7
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
4.真正安装
yum install mysql-community-server
5.启动服务
systemctl start mysqld.service
查看状态
systemctl status mysqld.service
6.修改默认密码
执行 grep 'temporary password' /var/log/mysqld.log 打印默认密码
登陆mysql
shell> mysql -uroot -p
修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
Note(官方提示,大写+小写+数字+特殊字符 > 8个字符) 验证方式可以修改,见https://blog.csdn.net/kuluzs/article/details/51924374
MySQL's validate_password plugin is installed by default. This will require that passwords contain at least one upper case letter, one lower case letter, one digit, and one special character, and that the total password length is at least 8 characters.
二、主从配置,修改/etc/my.cnf文件
一定要在主库和从库先建好需要备份的数据库,否则不会备份,例:一定要存在slavetest(从库文件需要备份的库名)数据库
1.先创建一个主从备份用户
create user slave;
#赋权限和密码
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.214.%' IDENTIFIED BY 'slave';
2.Master配置(以下在master库操作)
#server-id给数据库服务的唯一标识,不能为0且不能重复
server-id=1
#log-bin设置此参数表示启用binlog功能,生成的日志文件以这个文件命名+后缀
log-bin=mysql-bin
配置完了重启数据库systemctl restart mysqld
mysql> show master status;
上图中File和Position两个参数在从库配置时需要用到,保存一下
2.Slave配置(以下在从库库操作)
#server-id不能重复
server-id=3
#要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名
replicate-do-db=slavetest
##要忽略的数据库
replicate-ignore-db=mysql
relay-log=mysqld-relay-bin
配置完了重启从库 systemctl restart mysqld
依次执行以下命令
mysql>stop slave;
mysql>change master to master_host='192.168.214.128', master_user='slave', master_password='slave', master_log_file='mysql-bin.000002', master_log_pos=8853;
mysql>start slave;
ps:master_host 主库IP
master_user 步骤1创建的用户
master_password 步骤1创建的用户的密码
master_log_file 步骤2使用show master status命令查询的参数,上文已提及到
master_log_pos 步骤2使用show master status命令查询的参数,上文已提及到
4.测试
#查看binlog是否开启
show global variables like '%log_bin';
#查看从机状态,注意看下图的两个状态,如果测试不成功,用下面这个命令查看错误
show slave status \G;