试验环境:
主服务器IP:192.168.17.99
从服务器IP:192.168.17.88
配置:
一、主库
1.1、创建一个复制用户,具有replication slave 权限。
- mysql>grant all on *.* to ‘jack@’192.168.17.88′ identified by ‘123;
1.2、编辑my.cnf文件
vi /etc/my.cnf
添加
server-id=88 # 标记不同数据库,不能与其他数据库一样
并开启log-bin二进制日志文件
log-bin=mysql-bin
注:需要把默认的server-id=1去掉
关闭mysql
[root@cent] /usr/local/mysql/bin/mysqladmin -uroot -p shutdown
1.3、启动mysql数据库
- /usr/local/mysql/bin/mysqld_safe –user=mysql &
1.4、得到binlog日志文件名和偏移量
- mysql>show master status;
- +——————+———-+————–+——————+
- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
- +——————+———-+————–+——————+
- | mysql-bin.0000010 | 106| | |
- +——————+———-+————–+——————+
二、从库
2.1、编辑my.cnf文件
vi /etc/my.cnf
添加
server-id=88
log-bin=mysql-bin #建议开启
注:需要把默认的server-id=1去掉
关闭mysql
/usr/local/mysql/bin/mysqladmin -uroot -p shutdown
2.2、启动从数据库
- /usr/local/mysql/bin/mysqld_safe –user=mysql &
停止
mysql>stop slave;//停止从库
2.4、对从数据库进行相应设置
- mysql> change master to
- -> master_host=’192.168.17.99′,
- -> master_user=’jack’,
- -> master_password=’123’,
- -> master_log_file=’mysql-bin.0000010′, # 从哪个bin-log开始同步 在主库中show master status
- -> master_log_pos=106;
2.5、启动从服务器slave线程
- mysql>start slave;
2.6、查看slave线程状态
- mysql>show slave statusG;
- *************************** 1. row ***************************
- Slave_IO_State: Waiting for master to send event
- Master_Host: 192.168.203.149
- Master_User: repl
- Master_Port: 3306
- Connect_Retry: 60
- Master_Log_File: mysql-bin.0000010
- Read_Master_Log_Pos: 106
- Relay_Log_File: centos-relay-bin.000002
- Relay_Log_Pos: 529
- Relay_Master_Log_File: mysql-bin.0000010
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
- Replicate_Do_DB:
- Replicate_Ignore_DB:
- Replicate_Do_Table:
- Replicate_Ignore_Table:
- Replicate_Wild_Do_Table:
- Replicate_Wild_Ignore_Table:
- Last_Errno: 0
- Last_Error:
- Skip_Counter: 0
- Exec_Master_Log_Pos: 106
- Relay_Log_Space: 830
- Until_Condition: None
- Until_Log_File:
- Until_Log_Pos: 0
- Master_SSL_Allowed: No
- Master_SSL_CA_File:
- Master_SSL_CA_Path:
- Master_SSL_Cert:
- Master_SSL_Cipher:
- Master_SSL_Key:
- Seconds_Behind_Master: 0
- Master_SSL_Verify_Server_Cert: No
- Last_IO_Errno: 0
- Last_IO_Error:
- Last_SQL_Errno: 0
- Last_SQL_Error:
- 1 row in set (0.00 sec)
验证是否配置正确
在从服务器上执行
- show slave statusG;
- Waiting for master to send event
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
如以上二行同时为Yes 说明配置成功
测试:
1、在主服务器test数据库中创建user表
- mysql>use test;
- mysql>create table user(id int);
2、在从服务器中查看user表
- mysql>use test;
- mysql> show tables like ‘user’;
- +———————-+
- | Tables_in_test(user) |
- +———————-+
- | user |
- +———————-+
- 1 row in set (0.00 sec)
说明主从数据同步成功。