下面是搭建MySQL主从服务器的攻略。
1. 确认主从服务器的实现方式
MySQL主从服务器的实现方式一般有两种:
- 基于复制的主从服务器
- 基于半同步复制的主从服务器
基于复制的主从服务器实现简单,但是存在风险,例如主服务器出现宕机导致未同步的数据丢失。基于半同步复制的主从服务器实现较为稳定,但配置比较繁琐。
2. 配置主服务器
在CentOS 7上搭建MySQL主服务器,步骤如下:
2.1 安装MySQL
sudo yum install mariadb-server
2.2 修改MySQL配置文件
sudo nano /etc/my.cnf
在文件末尾添加以下内容:
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=row
其中server-id
是服务器的唯一标识符,log-bin
启用二进制日志,binlog-format
指定日志记录的格式。
2.3 重启MySQL服务
sudo systemctl restart mariadb
2.4 创建用于主从同步的账户
登录MySQL服务器并创建同步账户:
sudo mysql -u root -p
执行以下语句:
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
2.5 获取主服务器的状态
在MySQL命令行中执行以下语句:
SHOW MASTER STATUS;
记录下File
和Position
的值,备用。
3. 配置从服务器
在CentOS 7上搭建MySQL从服务器,步骤如下:
3.1 安装MySQL
sudo yum install mariadb-server
3.2 修改MySQL配置文件
sudo nano /etc/my.cnf
在文件末尾添加以下内容:
[mysqld]
server-id=2
log-bin=mysql-bin
binlog-format=row
relay-log=mysqld-relay-bin
replicate-do-db=mydb
其中server-id
是服务器的唯一标识符,log-bin
启用二进制日志,binlog-format
指定日志记录的格式,relay-log
指定中继日志文件名,replicate-do-db
指定需要同步的数据库名。
3.3 重启MySQL服务
sudo systemctl restart mariadb
3.4 配置从服务器与主服务器的连接
登录MySQL服务器并执行以下命令:
CHANGE MASTER TO
MASTER_HOST='master_host_name',
MASTER_USER='replication_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='file_name',
MASTER_LOG_POS=position;
其中master_host_name
是主服务器的IP地址或名称,replication_user
是用于同步的账户,password
是该账户的密码,file_name
和position
是在主服务器上执行SHOW MASTER STATUS
命令得到的值。
3.5 开始同步
在MySQL命令行中执行以下命令:
START SLAVE;
这样从服务器就会开始同步主服务器上的数据库了。
示例说明
示例1:实现多台从服务器的同步
如果需要将一个主服务器上的数据同步到多台从服务器中,只需要在每台从服务器上重复执行上面提到的“配置从服务器”的步骤即可。需要注意的是,每个从服务器的server-id
需要设置成唯一的值,一般推荐使用从服务器的IP地址作为该值。
示例2:MySQL主服务器替换
如果需要将一个MySQL主服务器替换成另一个服务器,需要进行以下步骤:
- 将新的服务器安装MySQL并配置好,参照上面的步骤。
- 确认主从服务器之间的连接已经断开。
- 在旧的主服务器上执行
SHOW MASTER STATUS;
命令记录下二进制日志文件名和位置。 - 在新的主服务器上执行
CHANGE MASTER TO
命令。 - 在新的主服务器上使用
mysqlbinlog
命令将旧的主服务器上的二进制日志转换成SQL文件,并在新的主服务器上执行该文件,将数据同步到新的主服务器上。 - 修改所有从服务器的连接,将新的主服务器的IP地址或名称和相应的账户密码填写进去。
- 在所有从服务器上执行
START SLAVE;
命令开始同步新的主服务器。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在centos7上搭建mysql主从服务器的方法(图文教程) - Python技术站