admin

LINUX下配置master/slave主从

admin linux 2023-01-25 453浏览 0

MySQL 提供 Master/Slave 机制让您轻易的完成多个 MySQL Server 之间的数据同步,有了多个数据同步的 MySQL Server 在管理上会较有弹性,例如你可以建置备援主机或是进行负载平衡等等。但是要注意:一台 Master Server 可以拥有很多台 Slave Server;但一台 Slave Server 只可对应到一台 Master Server

1.环境

master    192.168.1.100
slave    192.168.1.101

2.配置Master服务器
1)添加用于同步的mysql帐号
grant replication slave on *.* to 'master'@'192.168.1.101' identified by '123456'

2)修改my.cnf
以下内容:
[mysqld]
log-bin=mysql-bin
server-id=1
log-slave-updates
binlog_do_db            = mydb    #定义需要同步的库
binlog_ignore_db        = mysql        #不需要同步

3)查看master状态
show master status\G;
SHOW PROCESSLIST\G

显示以下内容,文件名在配置slave第二的时候需要用到:
*************************** 1. row ***************************
            File: mysql-bin.000001
        Position: 107
    Binlog_Do_DB: mydb
Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)

3.配置Slave服务器
1)修改my.cnf
以下内容:
[mysqld]
server-id=2

注意在导出数据之前先对主数据库进行READ LOCK,以保证数据的一致性
flush tables with read lock;

2)必须要明确的告诉 Slave Server 哪一台 Server 才是 Master Server,使用以下的指令即可
slave stop;
CHANGE MASTER TO MASTER_HOST=’192.168.1.100′,MASTER_PORT=3306, MASTER_USER=’matser’,MASTER_PASSWORD=’123456’,Master_Log_File=’mysql-bin.000001′,MASTER_LOG_POS=107;
slave start;

说明:mysql-bin.000001是主服务器当前日志文件名,必须设置

3)查看slave状态
show slave status\G;
SHOW PROCESSLIST\G

显示以下内容时,主从服务器配置成功
Slave_IO_State: Waiting for master to send event
Slave_IO_Running: 必须为 Yes
Slave_SQL_Running:必须为 Yes

一切都没问题了,恢复些操作
unlock tables;

4)手动同步数据,会自动建立数据库,需要设置用户master相应权限
LOAD DATA FROM MASTER;
完成

如果你从服务器曾经做过主从,这里就要在从服务器上做下操作
salve stop;
reset slave;
然后再一次输入:
CHANGE MASTER TO MASTER_HOST=’192.168.1.100′,MASTER_PORT=3306, MASTER_USER=’matser’,MASTER_PASSWORD=’123456’,Master_Log_File=’mysql-bin.000001′,MASTER_LOG_POS=107;
slave start;

继续浏览有关 LINUX技术 的文章
发表评论