mysql实现主从同步,我这里的环境是
| 服务器 | IP |版本 | ------------- | ------------------------------- | |主库 | 192.168.21.1 |mysql8.0 | 从库 | 192.168.21.158 |mysql8.0
从库安装mysql步骤省略 我这里是主库已经存在数据库,首先需要同步旧数据
mysqldump --single-transaction --all-databases --master-data=1 --host=192.168.21.1 --user=root --password=root --apply-slave-statements | mysql -uroot -proot -hlocalhost
主库配置/etc/my.cnf增加如下几行
server-id=1
read-only=0
log_bin = mysql-bin
log-slave-updates = true
重启主库
systemctl restart mysqld
进入mysql
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 195169 | | | |
+------------------+----------+--------------+------------------+-------------------+
从库配置
server-id=2 #不能与主库的相同
重启从库
systemctl restart mysqld
进入mysql,执行
stop slave
reset slave
change master to master_host= '192.168.21.1', master_user='root', master_password='root', master_log_file='mysql-bin.000002', master_log_pos=195169;
start slave
查看状态:
show slave status\G;
在输出的结果中查找必须都为YES
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
遇到的问题:
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
我看网上都是重新设置
change master to master_log_file='mysqlbin.000001', master_log_pos=1000;
我这并不起作用, 使用如下命令解决的:
stop slave
reset slave
start slave
评论列表,共 0 条评论
暂无评论