前期准备:
- 准备三台虚拟机,分别安装mysql8.0
- 主库IP:192.168.1.130
- 从库IP:192.168.1.160
- 从库IP:192.168.1.131
主库操作:
-
先检查是否开启binlog日志:
show variables like 'log_bin';
-
检查配置文件是否正确设置了
server-id
和log_bin
:vi 配置文件my.cnf的绝对路径
-
链接数据库:
mysql -uroot -p
-
运行以下sql:
flush privileges; create user `slave`@`%` identified by 'root'; flush privileges; grant all on *.* to `slave`@`%` with grant option; flush privileges;
-
查看当前binlog日志信息:
show master status;
-
记录下来:fiel和position,之后从库配置需要用到
从库操作:
- 检查是否开启了中继日志:
show variables like 'relay'
- 检查配置文件是否正确设置了
server-id
:vi 配置文件my.cnf的绝对路径
//server-id不能与主库一样 - 链接数据库:
mysql -uroot -p
- 运行sql:
change master to master_host='192.168.1.130',master_port=3306,master_user='slave',master_password='root',master_log_file='mysql-bin.000011',master_log_pos=8810;
- sql说明:
- ----master_host:主库IP
- ----master_port:链接主库的端口(可不用)
- ----master_user:链接主库的用户
- ----master_password:链接主库的用户密码
- ----master_log_file:主库当前使用的binlog日志,主库操作第10点后,记录到的file
- ----master_log_pos:主库当前记录到的操作节点,主库操作第10点后,记录到的position
- 运行完sql之后,需要重启从库的slave服务:
stop slave
start slave
- 然后查看从库slave信息:
show slave status \G
- Slave_IO_Running和Slave_SQL_Running这两个值为Yes则说明slave服务运行正常(万事大吉)
- 如果上面两个值不为Yes,则需要再根据Slave_SQL_Running_State查看主要问题信息
百度是个好东西