Mysql 主从复制配置步骤 说明: 推荐主服务器和从服务器使用相同的版本 。 在许多情况下,从新的主服务器向旧的从服务器复制将会失败。一般原则, 版本较低的 master 可以和较高版本的 slave 一起可以正常工作 ,但不能反过来。 1. 在 master 上建立有复制权
Mysql 主从复制配置步骤
说明:
推荐主服务器和从服务器使用相同的版本 。 在许多情况下,从新的主服务器向旧的从服务器复制将会失败。一般原则, 版本较低的 master 可以和较高版本的 slave 一起可以正常工作 ,但不能反过来。
1. 在 master 上建立有复制权限的账户
GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO backup@60.*.*.* IDENTIFIED BY 'slavepass';
FLUSH PRIVILEGES ;
2. 用 mysqldump 出 master 上的 数据库并导入到 slave 上
master# mysqldump -uroot -p high >high .sql
3. 在 master 的 my.cnf 配置文件 的 replication 部分添加:
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = high
binlog_ignore_db = mysql
重启 mysql
# /etc/init.d/mysql restart
查看 master 的状态
mysql> show master status;
4. 在 slave 的 my.cnf 配置文件 的 replication 部分添加:
server-id = 2
master-host = 60.*.*.*
master-user = backup
master-password = slavepass
master-port = 3300
replicate-do-db = high
replicate-ignore-db = mysql
重启 mysql
# /etc/init.d/mysql restart
查看 slave 的状态
mysql> show slave status;
在 slave 上手动设置 master :
查看 master 的信息:
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 2244 | high | mysql |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
停掉 slave :
mysql> stop slave;
在 slave 上执行如下命令:
CHANGE MASTER TO MASTER_HOST='60.*.*.*', MASTER_PORT=3300,
MASTER_USER='backup', MASTER_PASSWORD='slavepass',MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=2244;
启动 slave :
mysql> start slave;
5. 在 master 的 high 库中创建、删除表,观察 slave 上是否也成功创建、删除表。
6. 在 slave 上给 high 用户授权,以便在 master 出现问题时可以临时切到 slave 上。
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON high.* TO 'high'@'60.*.*.%' IDENTIFIED BY 'high';
FLUSH PRIVILEGES;
7. 问题
发现: Slave_IO_Running No
原因:没有在 master 对复制账号授权。按第一步操作即可解决。
8. 主从服务器的复制状态查看命令:
SHOW PROCESSLIST;
SHOW MASTER STATUS;
show slave status;