MySQL主从复制
- 爵特猛
- 2018-3-28 12:09
- 其它
- 869
主服务器A:192.168.0.1
从服务器B:192.168.0.2
在主服务器新建一个从账号锁定IP
GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO backup@'192.168.0.2' IDENTIFIED BY 'q123456';
//账户名:backup,指定客户端:192.168.0.2,密码:q123456
更新sql数据库
mysql mysql -u
在从服务器上运行测试是否能登陆主服务器
F:\phpStudy\MySQL\bin\mysql -h192.168.0.1 -ubackup -pq123456;
对主服务器的配置进行修改,
打开mysql/my.ini文件,在[mysqld]下面添加如下内容:
server-id=1
log-bin="D:/phpStudy/MySQL/log/log-bin.log"
binlog-do-db ="slsix"
binlog-ignore-db="mysql"
expire_logs_days = 2 //超过两天的二进制日志会被自动删除
( 主:binlog-do-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
主:binlog-ignore-db=不需要复制的数据库苦命,如果复制多个数据库,重复设置这个选项即可
)
A查看主服务器的状态
mysql>show master status;
log-bin.000001 | 107 | demo
对B服 务器的配置进行修改,
打开mysql/my.ini文件,在[mysqld]下面添加如下内容:
server-id = 2
replicate-do-db ="slsix"
( 从:replicate-do-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
从:replicate-ignore-db=不需要复制的数据库名,如果要忽略多个数据库,重复设置这个选项即可
)
B停止slave的服务!!!!!
mysql>stop slave;
配置从服务器Slave:
mysql>change master to master_host='192.168.0.1',master_user='backup',master_password='q123456',
master_log_file='log-bin.000001',master_log_pos=107; //注意不要断开,107数字前后无单引号。
//B启动同步数据库的线程
mysql>start slave;
在B查看同步状况
检查从服务器复制功能状态:
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.1 //主服务器地址
Master_User: mysync //授权帐户名,尽量避免使用root
Master_Port: 3306 //数据库端口,部分版本没有此行
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 600 //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos
Relay_Log_File: ddte-relay-bin.000003
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
......
注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。
爵特猛