当前位置:首页 > 计算机相关 > mysql > 正文内容

mysql主从同步配置

piikee3年前 (2021-12-27)mysql1380

两台mysql服务器主从同步配置方法如下:

我们假设两台服务器IP分别如下

主master : 192.168.1.10

从slave  :   192.168.1.11


一、主服务器要开启允许外网访问,这个mysql开允许外网访问自己谷歌一下

二、

配置主库,授权给从数据库服务器,主数据库登录mysql执行以下命令,创建一个slave用户给192.168.1.11这台从服务器,让它可以通过这个用户名和密码来访问主服务器获取数据:

mysql>CREATE USER 'slave'@'192.168.1.11' IDENTIFIED WITH mysql_native_password BY 'test123456';
mysql>GRANT USAGE ON *.* TO 'slave'@'192.168.1.11';
mysql>GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.11';
mysql>FLUSH PRIVILEGES;

三、修改主库配置文件,开启binlog,并设置server-id,每次修改配置文件后都要重启mysql服务才会生效。主服务器的mysql配置文件加入以下内容:

server-id = 1
log-bin=mysql-bin
log-bin-index=mysql-bin.index
sync_binlog=1

binlog-do-db=cmdb #要同步的数据库名

还可以显示 设置不同步的数据库(binlog-do-db和binlog-ignore-db是互斥的,设置其中一个就可以):

binlog-ignore-db = mysql 不同步mysql库和test库
binlog-ignore-db = test

修改配置文件后,重启服务:service mysqld restart

四、查看主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复。执行以下命令:


mysql>show master status;


+---------------+----------+--------------+------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| binlog.000001 |     13034 | cmdb         |                  |
+---------------+----------+--------------+------------------+
1 row in set (0.00 sec)


五、配置从库。也是从服务器的mysql配置文件里面加入以下内容:


server-id=2
relay-log-index = slave-relay-bin.index
relay-log = slave-relay-bin
sync_master_info = 1
sync_relay_log = 1
sync_relay_log_info = 1
replicate-do-db=cmdb
slave_skip_errors=1062,1032
log_timestamps=system


六、登录从库mysql,输入以下命令:

mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.10', MASTER_PORT=3306, MASTER_USER='slave', MASTER_PASSWORD='test123456', MASTER_LOG_FILE='binlog.000001', MASTER_LOG_POS=13034; #后面两个参数的值与主库保持一致
mysql> start slave ;
Query OK, 0 rows affected (0.04 sec)
七、查看同步状态
在从库mysql命令行输入 show slave status\G;
查看slave的状态,如果下面两项值为YES,则表示配置正确:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

七、如果以上两个不是YES,可以执行以下内容:


mysql>  reset slave;
Query OK,  rows affected ( sec)
mysql> start slave IO_THREAD;
Query OK,  rows affected ( sec)
mysql> stop slave IO_THREAD;
Query OK,  rows affected ( sec)
mysql> reset slave;
Query OK,  rows affected ( sec)
mysql> start slave;
Query OK,  rows affected ( sec)
mysql> show slave status\G


应该就正确了。

扫描二维码推送至手机访问。

版权声明:本文由萍客小居[www.piikee.net]发布,如需转载请注明出处。

本文链接:https://www.piikee.net/1497.html

分享给朋友:

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。