MySQL5.7主从数据库搭建

一、数据库安装

在内存为8G的服务器上安装MySQL5.7,主数据库服务器IP为192.168.2.221,从数据库服务器IP为192.168.2.222 。在Ubuntu系统中,可使用以下命令进行安装:

1
sudo apt-get install mysql-server

二、主数据库配置

  1. 修改配置文件:编辑/etc/mysql/my.cnf文件,添加或修改以下配置:
1
2
3
4
5
6
7
#master
[mysqld]
#replicate
server_id = 1
#replicate database
binlog-do-db = test
log_bin = mysql-bin
  • server_id:每个参与复制的MySQL服务器都必须有唯一的server_id,主库设置为1 。
  • binlog-do-db:指定需要记录二进制日志的数据库,这里设置为test数据库。
  • log_bin:指定二进制日志文件的名称前缀。
  1. 添加同步用户:进入MySQL数据库,执行以下命令添加用于主从同步的用户:
1
2
mysql>create user 'repl'@'%' identified by 'password';
mysql>grant replication slave on *.* to 'repl'@'%';
  • create user 'repl'@'%' identified by 'password';:创建一个名为repl,允许从任何主机连接(@'%'),密码为password的用户。
  • grant replication slave on *.* to 'repl'@'%';:授予repl用户在所有数据库(*.*)上的复制从权限。
  1. 记录master信息:在MySQL命令行中执行以下命令,记录主库的FilePosition信息:
1
mysql>show master status\G

示例输出:

1
2
3
4
5
6
***************** 1. row *****************
File: mysql-bin.000001
Position: 154
Binlog_Do_DB: test
Binlog_Ignore_DB:
Executed_Gtid_Set:

File的值mysql-bin.000001Position的值154在后续从库配置中会用到。

  1. 重启数据库:执行以下命令重启MySQL服务,使配置生效:
1
sudo /etc/init.d/mysql restart

三、从数据库配置

  1. 修改配置文件:编辑从库的/etc/mysql/my.cnf文件,添加或修改以下配置:
1
2
3
4
5
6
#slave
[mysqld]
#replicate
server_id = 2
#replicate database
replicate-do-db = test
  • server_id:从库的server_id设置为2,与主库的server_id不同。
  • replicate-do-db:指定需要复制的数据库为test
  1. 配置slave:进入从库的MySQL数据库,执行以下命令配置从库连接主库:
1
2
mysql>change master to master_host='192.168.2.221',master_port=3306,master_user='repl',master_password='password',master_log_file='mysql-bin.000001',master_log_pos=154;
mysql>start slave;
  • change master to...:配置从库连接主库的参数,包括主库的IP地址(master_host)、端口(master_port)、同步用户名(master_user)、密码(master_password)以及主库二进制日志文件名称(master_log_file)和位置(master_log_pos)。这些参数的值来源于主库show master status的输出。
  • start slave;:启动从库的复制线程。
  1. 重启数据库并检查状态
  • 执行以下命令重启MySQL服务:
1
sudo /etc/init.d/mysql restart
  • 再次进入MySQL数据库,执行以下命令检查从库状态:
1
mysql>show slave status\G;

示例输出中有以下关键信息表示连接成功:

1
2
3
4
Slave_IO_State: Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0

四、批量插入性能测试

使用以下批量插入语句进行性能测试:

1
insert into mt_data(mac,time,device_id,intensity,ap_mac,channel,virtual_type)values(……)*n

n为300时,每秒能够插入达到35000条数据,这展示了在该主从数据库架构下的批量插入数据的性能表现。


MySQL5.7主从数据库搭建
https://119291.xyz/posts/2025-04-15.mysql-57-master-slave-database-setup/
作者
ww
发布于
2025年4月15日
许可协议