当前位置:Gxlcms > 数据库问题 > mysql主从同步

mysql主从同步

时间:2021-07-01 10:21:17 帮助过:15人阅读

两个linux系统安装同一版本的mysql数据库。

两个数据库的配置里面同时启用二进制日志和server-id,server-id必须不一样。


然后重启mysql数据库。


授权给从数据库服务器slave

mysql> GRANT REPLICATION SLAVE ON *.* to ‘replication‘@‘slave-ip‘ identified by ‘replication’;



查看master的二进制日志信息。

查询主数据库状态

Mysql> show master status;

+------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000005 | 261 | | |

+------------------+----------+--------------+------------------+


记录下 FILE 及 Position 的值,在后面进行从服务器操作的时候需要用到。


2.2 配置从服务器

修改从服务器的配置文件/opt/mysql/etc/my.cnf

将 server-id = 1修改为 server-id = 10,并确保这个ID没有被别的MySQL服务所使用。


启动mysql服务

/opt/mysql/init.d/mysql start


通过命令行登录管理MySQL服务器

/opt/mysql/bin/mysql -uroot -p‘new-password‘


执行同步SQL语句

mysql> change master to

master_host=’192.168.10.130’,

master_user=’rep1’,

master_password=’password’,

master_log_file=’mysql-bin.000005’,

master_log_pos=261;


正确执行后启动Slave同步进程

mysql> start slave;


主从同步检查

mysql> show slave status\G

==============================================

**************** 1. row *******************

Slave_IO_State:

Master_Host: 192.168.10.130

Master_User: rep1

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000005

Read_Master_Log_Pos: 415

Relay_Log_File: localhost-relay-bin.000008

Relay_Log_Pos: 561

Relay_Master_Log_File: mysql-bin.000005

Slave_IO_Running: YES

Slave_SQL_Running: YES

Replicate_Do_DB:

……………省略若干……………

Master_Server_Id: 1

1 row in set (0.01 sec)

==============================================


其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常。


如果主服务器已经存在应用数据,则在进行主从复制时,需要做以下处理:

(1)主数据库进行锁表操作,不让数据再进行写入动作

mysql> FLUSH TABLES WITH READ LOCK;


(2)查看主数据库状态

mysql> show master status;


(3)复制数据文件

将主服务器的数据文件(整个/opt/mysql/data目录)复制到从服务器,建议通过tar归档压缩后再传到从服务器解压。


(4)取消主数据库锁定

mysql> UNLOCK TABLES;



若出现:

Slave_IO_Running: connecting的时候,会有这些情况:

1,master不能连接,有可能是iptables,或者网络不通,首先telnet一下master的mysql端口是否正常。

2,连接master的用户名和密码是否正确?

3,连接master使用到的二进制日志 File | Position 的这两个值是否正确?


就这么三个问题。若安装没有什么问题,就这三个问题,解决即可。


mysql主从同步

标签:mysql

人气教程排行