首页 > 代码库 > 【mysql】mysql主从复制
【mysql】mysql主从复制
mysql主从复制配置
主服务器:192.168.0.100
从服务器
192.168.0.101
主服务器配置
my.ini(window下 linux 下是my.cnf)
#开启二进制日志
log-bin=mysql-bin
#给服务器起一个唯一的id
server-id=1
#指定日志格式
binlog-format=mixd
授权给从数据库服务器192.168.0.101
mysql> GRANT REPLICATION SLAVE ON *.* to ‘user‘@‘192.168.0.101‘ identified by ‘password’;
查询主数据库状态
Mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000008 | 998 | | |
+------------------+----------+--------------+------------------+
从服务器配置
#配置从服务器
log_bin=mysql_bin
server_id=2
relay_log=mysql-relay-bin
log_slave_updates=1
read_only=1
执行同步SQL语句
mysql> change master to
master_host=’192.168.0.100’,
master_user=’user’,
master_password=’password’,
master_log_file=’mysql-bin.000008’,#和上面的一致
master_log_pos=261;
正确执行后启动Slave同步进程
mysql> start slave;
主从同步检查
mysql> show slave status\G
当MySQL主从复制在 show slave status\G 时出现Slave_IO_Running或Slave_SQL_Running 的值不为YES时,需要首先通过 stop slave 来停止从服务器,然后再执行一次上面步骤即可恢复,但如果想尽可能的同步更多的数据,可以在Slave上将master_log_pos节点的值在之前同步失效的值的基础上增大一 些,然后反复测试,直到同步OK。因为MySQL主从复制的原理其实就是从服务器读取主服务器的binlog,然后根据binlog的记录来更新数据库