MySQL是一种开源的关系型数据库管理系统,被广泛应用于各种应用程序中。在实际应用中,为了提高数据库的可用性和性能,通常会设置主从复制架构。主从复制架构中,主服务器(Master)用于写入数据和处理读写请求,而从服务器(Slave)则用于复制主服务器的数据以提供读取服务。当主服务器发生故障或无法提供读写服务时,从服务器可以顶替主服务器的角色,保证数据库的可用性。在本文中,我们将介绍如何配置MySQL从库。
步骤一:安装MySQL
首先,我们需要在从服务器上安装MySQL数据库。可以通过以下命令在Ubuntu系统上安装MySQL:
sudo apt-get update
sudo apt-get install mysql-server
安装完成后,可以使用以下命令启动MySQL服务:
sudo systemctl start mysql
步骤二:配置主服务器
在配置从服务器之前,我们需要先配置主服务器。主服务器用于写入数据和处理读写请求。
步骤2.1:修改主服务器配置文件
打开主服务器的配置文件my.cnf
,通常位于/etc/mysql/my.cnf
目录下,找到并修改以下参数:
[mysqld]
server-id = 1 # 设置主服务器的唯一ID
log_bin = /var/log/mysql/mysql-bin.log # 启用二进制日志
binlog_do_db = your_database_name # 需要复制的数据库名
步骤2.2:重启主服务器
修改配置文件后,需要重启主服务器使配置生效:
sudo systemctl restart mysql
步骤三:配置从服务器
在配置从服务器之前,我们需要先配置主服务器。从服务器用于复制主服务器的数据以提供读取服务。
步骤3.1:修改从服务器配置文件
打开从服务器的配置文件my.cnf
,通常位于/etc/mysql/my.cnf
目录下,找到并修改以下参数:
[mysqld]
server-id = 2 # 设置从服务器的唯一ID,与主服务器不同
relay-log = /var/log/mysql/mysql-relay-bin.log # 中继日志文件路径
log_bin = /var/log/mysql/mysql-bin.log # 启用二进制日志
read-only = 1 # 设置从服务器为只读模式
步骤3.2:重启从服务器
修改配置文件后,需要重启从服务器使配置生效:
sudo systemctl restart mysql
步骤四:配置主从复制
在主服务器和从服务器都配置完成后,我们需要在主服务器上创建一个用于复制的用户,并设置相应的权限。
步骤4.1:在主服务器上创建复制用户
登录到主服务器的MySQL命令行界面:
mysql -u root -p
在MySQL命令行界面中,执行以下命令创建一个用于复制的用户,并设置相应的权限:
CREATE USER 'replication'@'%' IDENTIFIED BY 'password'; # 创建复制用户
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%'; # 授予复制权限
FLUSH PRIVILEGES; # 刷新权限
步骤4.2:获取主服务器状态
在主服务器的MySQL命令行界面中,执行以下命令获取主服务器的状态:
SHOW MASTER STATUS;
记录下显示的File
和Position
,将在后续的步骤中用到。
步骤4.3:配置从服务器复制参数
登录到从服务器的MySQL命令行界面:
mysql -u root -p
在MySQL命令行界面中,执行以下命令配置从服务器的复制参数:
CHANGE MASTER TO MASTER_HOST='your_master_ip', # 设置主服务器的IP地址
MASTER_USER='replication', # 设置复制用户
MASTER_PASSWORD='password', # 设置复制用户密码
MASTER_LOG_FILE='your_master_log_file', # 设置主服务器的日志文件名
MASTER_LOG_POS=your_master_log_position; # 设置主服务器的日志位置
将上述命令中的`your_master_ip