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;

记录下显示的FilePosition,将在后续的步骤中用到。

步骤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