小记一次MySQL主从配置解决方案
MySQL主从复制是提高MySQL数据库高可用性、负载均衡和数据备份的关键技术之一。下面是一份完整的攻略,介绍了如何在两台MySQL服务器之间进行主从复制及配置方案。
环境准备
我们假设有两台服务器,IP地址分别是192.168.1.100和192.168.1.101。其中,192.168.1.100作为主服务器,192.168.1.101作为从服务器。MySQL版本为5.5以上。
配置主服务器
- 配置my.cnf,在[mysqld]标签下添加如下内容:
server-id=1
log-bin=mysql-bin
binlog-do-db=test
其中,“1”是主服务器的标识号,可以选择任意数字。log-bin= mysql-bin为MySQL开启二进制日志记录的选项,binlog-do-db=test表示只记录test库的操作日志。
- 重启MySQL服务
$ sudo /etc/init.d/mysql restart
- 创建具有从服务器访问权限的用户
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'192.168.1.101' IDENTIFIED BY 'slave_password';
该命令创建了一个名为slave_user的用户以及指定该用户可以从192.168.1.101访问MySQL。这里slave_password是该用户的密码。
- 查看主服务器状态
mysql> SHOW MASTER STATUS;
记录下其中的File和Position值,将在下一步配置从服务器时用到。
配置从服务器
- 配置my.cnf,在[mysqld]标签下添加如下内容:
server-id=2
relay-log=mysql-relay-bin
log-slave-updates=1
其中,server-id=2表示从服务器的标识号,relay-log=mysql-relay-bin表示开启中继日志,log-slave-updates=1表示在从服务器上记录更新日志。这些选项是必须的,才能用于激活Slave。
- 重启MySQL服务
$ sudo /etc/init.d/mysql restart
- 连接到MySQL,并添加从服务器到主服务器的连接信息
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.1.100',
-> MASTER_USER='slave_user',
-> MASTER_PASSWORD='slave_password',
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=154;
其中,MASTER_HOST指定连接主服务器的IP地址。MASTER_USER和MASTER_PASSWORD为之前创建的授权用户的用户名和密码。MASTER_LOG_FILE和MASTER_LOG_POS值是第一步中记录的值。
- 启动从服务器
mysql> START SLAVE;
该命令启动从服务器连接到主服务器,并开始复制二进制日志文件到从服务器。
- 查看从服务器状态
mysql> SHOW SLAVE STATUS \G;
如果复制成功,该命令应该会返回一些关于Slave的详细信息,包括Slave_IO_Running 和 Slave_SQL_Running字段,值应该为“yes”。
示例
下面是两个示例:
示例一:修改主服务器数据
mysql> use test;
mysql> CREATE TABLE students (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20), age INT);
mysql> INSERT INTO students (name, age) VALUES('Tom', 20);
mysql> INSERT INTO students (name, age) VALUES('Jerry', 18);
示例二:验证从服务器是否同步
mysql> use test;
mysql> SELECT * FROM students;
下面是结果:
+----+-------+-----+
| id | name | age |
+----+-------+-----+
| 1 | Tom | 20 |
| 2 | Jerry | 18 |
+----+-------+-----+
2 rows in set (0.00 sec)
可以看到,从服务器也成功复制了students表的数据。
结论
通过这份攻略,您已经成功配置了MySQL主从复制,并通过examples验证它可以正常工作。如果您需要更多信息,请查看MySQL官方文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:小记一次mysql主从配置解决方案 - Python技术站