时间:2021-07-01 10:21:17 帮助过:14人阅读
2、创建一个用来专门同步数据用的用户,sql如下,用户名和密码都可以自己随便写。
1 2 3 | GRANT REPLICATION SLAVE ON *.* TO ‘username‘@‘%‘ identified by ‘password‘; #添加用户 FLUSH PRIVILEGES;#刷新权限 |
3、找到主服务器上的二进制文件和位置,使用下面的sql就可以看到了,先记录一下file和Position这2列,要在slave服务器上配置
1 | SHOW MASTER STATUS; |
4、复制之前的数据,我的master上是有一些表和数据的,要先把它整到slave一份。
先用mysqldump备份整个数据库
1 2 3 4 5 6 7 | mysqldump -uroot -p123456 --all-databases --lock-all-tables > ~/master_db.sql #-u :用户名 #-p :示密码 #--all-databases :导出所有数据库 #--lock-all-tables :执行操作时锁住所有表,防止操作时有数据修改 #~/master_db.sql :导出的备份数据(sql文件)位置,可自己指定 |
备份完之后,拿到的salve执行一下,也就是我Windows上面的mysql,咋执行都ok,可以直接把sql文件里面的sql语句复制出来执行,可以直接用mysql命令执行sql文件。
5、在slave节点上配置master的信息,让它能找到master。
在slave节点的配置文件里面找到server-id也改成唯一的一个,不能和其他的一样
ps:这里改完别忘了重启,配置文件修改完之后,重启了之后才会生效
在slave上执行下面的sql,设置主服务器的信息
1 2 3 4 5 6 7 8 9 10 11 12 | change master to master_host=‘10.234.137.164‘, master_user=‘slave‘, master_password=‘123456‘,master_log_file=‘mysql-bin.000001‘, master_log_pos=2544; -- master_host就是master的ip -- master_user就是上面建的用户 -- master_password上面创建用户的密码 -- master_log_file是刚才上面让记的file那一列的值 -- master_log_pos是刚才上面让记的Position那一列的值 |
上面只是设置了master节点的信息,还没有开始同步,执行start slave;开始同步,sql语句如下:
1 | START SLAVE; |
开始同步之后,查看一下同步状态,sql如下,看下图可以看到已经开始运行了。
1 | show slave status \G; #查看salve的状态 |
6、测试是否可以同步,先在master上创建一个数据库,再去slave节点上找这个数据库。
下面是同步完之后的
至此测试结束,主从配置完成,快去试试吧。
mysql主从配置
标签:主服务器 账号 基于 hang password 指定 授权 插入 一个数据库