Mysql 5.7实现主从复制
实验环境
虚拟机安装CentOS7这里不做过多说明,自己百度。
一、CentOS 7安装Mysql
去Mysql官网查找最新的版本
1.下载Mysql源安装包
2.安装Mysql源
shell> yum install mysql57-community-release-el7-11.noarch.rpm
3.安装Mysql
shell>yum install mysql-server
4.查找root默认密码
shell>vim /var/log/mysqld.log
找到'root'@'localhost':后面的就是初始密码了,输入密码登录Mysql。
shell>mysql -u root -p
5.修改root密码
shell>ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
注:这个密码必须包含大小写字母、数字、特殊符号,并且长度不能少于8位,否则不让创建。
如果你嫌麻烦可以修改一下Mysql的配置文件/etc/my.cnf,在里面添加下面的代码,降低或禁用密码策略。
降低:validate_password_policy=0
(注:0表示LOW,1表示MEDIUM,2表示STRONG)
或禁用:validate_password = off
6.允许root远程登录
首先将root的地址改为‘%’,即所有地址的root用户都能够登录。
mysql>use mysql;
mysq>update user set host='%' where user='root';
然后需要关闭防火墙
shell>systemctl stop firewall.service
禁用防火墙
shell>systemctl disable firewall.service
你可以在你的本机上安装一个Navicat for Mysql,测试以下能否连接。
二、配置Mysql主从复制
将刚才的CentOS虚拟机复制一份作为从服务器。
1.主Mysql配置
修改/etc/my.cnf文件添加以下内容:
重启mysql创建同步用户账号
创建用户并授权
mysql>CREATE USER 'root'@ '192.168.22.137' IDENTIFIED BY 'root';
#创建用户
mysql>GRANT REPLICATION SLAVE ON *.* 'root'@'192.168.22.137';
#分配权限
mysql>flush privileges;
#刷新权限
查看master状态,记录二进制文件名,及位置
2.从Mysql配置
同样需要修改/etc/my.cnf文件:
之后还需要修改从Mysql的UUID,因为这两个虚拟机是复制过来的,所以它们的Mysql的UUID是一致的,如果不修改,slave在同步的时候会报错。修改/var/lib/mysql/auto.cnf文件,随便修改一下,只要和原来不一样即可。
重启Mysql,进入关键步骤,执行同步SQL语句
mysql>CHANGE MASTER TO
-> MASTER_HOST='192.168.22.168' #master的ip
-> MASTER_USER='root', #用户名
-> MASTER_PASSWORD='root', #密码
-> MASTER_LOG_FILE='mysql-bin.000001',
#文件
-> MASTER_LOG_POS='3054'; #位置
其他slave同步进程
mysql>start slave;
查看slave状态:
注:Slave_IO_Running和Slave_SQL_Running均为yes,才说明你成功了!
三、测试成果
在Master上创建数据库:test,并查看
在Slave上查看数据库:
可喜可贺!
参考:
https://www.cnblogs.com/gl-developer/p/6170423.html