测试环境
由于还在上学,没有购买云主机,测试环境在我自己笔记本上虚拟机中测试😂🤣
linux:CentOs 6.5
mysql:5.1.173
master:192.168.106.139
slave:192.168.106.140
动手操作
1. 修改主库mysql配置文件
vim /etc/my.cnf
在[mysqld]下
port = 3306
log_bin = /var/lib/mysql/mysql-binlog
server-id = 1 //只要主从不一样就行
binlog_do_db = test//要做同步的数据库名字,可以是多个数据库,之间用分号分割。
2. 修改从库mysql配置文件
vim /etc/my.cnf
在[mysqld]下
server-id = 2
master-host=192.168.106.139 //主库ip
master-user=user999 //主库用户名
master-password=user999 //主库密码
master-port=3306
master-connect-retry=5
replicate-do-db=test // 备份的数据库
3.分别重启mysql服务
service mysqld restart
4.登录主库,主库执行
创建复制用户
MySQL> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO user999@'%' IDENTIFIED BY 'user999';
查看master信息
mysql> show master status\G
*************************** 1. row ***************************
File: mysql-bin.000009
Position: 865
Binlog_Do_DB: test
Binlog_Ignore_DB:
1 row in set (0.00 sec)
5.登录从库,从库上执行
首先停掉slave
mysql>stop slave
手动同步
- MASTER_LOG_FILE: 是主库中File后面的字段
- MASTER_LOG_POS:是主库中Position后面的
mysql> CHANGE MASTER TO MASTER_HOST='192.168.106.139',
MASTER_USER='user999',
MASTER_PASSWORD='user999',
master_port=3306,
MASTER_LOG_FILE='mysql-bin.000009',
MASTER_LOG_POS=865;
启动从库
start slave
如果有异常需要跳过:
slave stop;
SET GLOBAL sql_slave_skip_counter = 1;
slave start;
查看slave状态
show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
这两个都为yes就可以实现主从复制了