01、首先是分别在两个服务器上安装mysql(可以参考 https://blog.csdn.net/mayunju/article/details/90599019)
02、接下来在主服务器(Master)上创建一个具有REPLICATION SLAVE权限的用户,命令如下:
mysql> CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'yourPassword';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for repl;
+----------------------------------------------+
| Grants for repl@% |
+----------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO `repl`@`%` |
+----------------------------------------------+
1 row in set (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
03、在配置主从复制前,保证两个数据库(Master和Slave)的数据一致,首先将主数据库(Master)中需要配置主从的数据库数据导出来,使用如下命令,然后导入到从数据库(Slave)中(注意执行这条命令之前不要用use切换到任何数据库下,直接在bin目录下执行就行,不用提前登录):
mysqldump -uroot -p --databases database1 database2 database3 > C:\Users\Administrator\Desktop\master_db.sql;
04、修改主服务器的my.ini配置文件:
[mysqld]
# 主要是加如下内容 log-bin、binlog-do-db、binlog-ignore-db、server-id
log-bin = mysql-bin
# 待同步的数据库
# 需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-do-db = database1
binlog-do-db = database2
binlog-do-db = database3
binlog-do-db = database4
# 不同步mysql系统数据库
binlog-ignore-db = mysql
server-id = 1
05、修改从服务器的my.ini配置文件:
[mysqld]
log-bin = mysql-bin
# 待同步的数据库
# 需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-do-db = database1
binlog-do-db = database2
binlog-do-db = database3
binlog-do-db = database4
# 不同步mysql系统数据库
binlog-ignore-db = mysql
server-id = 2
06、重启一下主从服务器的mysql服务
07、查询主数据库状态,并记录下File和Position字段的值
show master status;
08、在从服务器上执行如下命令:
change master to master_host='xx.xxx.xxx.xx',master_user='repl',
master_password='主服务器具有复制权限的账号密码',master_log_file='mysql-bin.000002',
master_log_pos=xxx;
start slave;
SHOW SLAVE STATUS\G
;