主库
1.在主库中my.ini文件中添加配置信息
log-bin = mysql-bin #主从复制 表示启动二进制文件
server_id = 1 #server_id编号 编号唯一 主从库不能一样
binlog-do-db= ****** #设置同步的数据库
#binlog-ignore-db=mysql #可以设置不需要同步的数据库
2.重启mysql服务
3.使用root用户登录,(注意:一定要先cmd到mysql安装目录中的bin目录下)
mysql -u root -p
4.创建slave账号,并赋值权限,命令如下
mysql> CREATE USER 'slave'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'slave';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' ;
mysql> FLUSH PRIVILEGES;
也可以使用图形工具创建,权限赋予所有数据库 【从数据库】 权限即可;
5.查看主数据库状态,注意这里的参数:File与Position,后续从库配置中会使用到
show master status;
从库配置
1、配置从库的my.ini
server_id = 3 #server_id编号 编号唯一 不能和主库一样
#同步的数据库
binlog-do-db=******
#不需要同步的数据库
#binlog-ignore-db=mysql
2、命令行登录从库
mysql -u root -p
3、查看从数据库状态
show slave status;
4、在从数据库中配置主数据库的信息
change master to
master_host='*.*.*.*',master_port=3306,master_user='slave',master_password='slave',master_log_file='mysql-bin.000002',master_log_pos=741;
参数解析:
master_host:Master数据库地址
master_port:Master数据库端口
master_user:用户名,主库配置账号slave
master_log_file:对应Master数据库二进制日志文件,命令行可见
master_log_pos:对应Master数据库Position,命令行可见
5、启动slave
start slave;
6、查看运行状态
show slave status\G
当这下面两个属性为Yes的时候,配置成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
7、如果从库直接从主库拷贝数据,需要修改data中的 【auto.cnf】文件
[auto]
server-uuid=3f666435-ae9d-11e9-aeb0-90b11c9ba46f
#代码串不得与主库相同,随便改改就行