千家信息网

如何在linux系统中搭建mysql主从服务器?

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,实现目标现在需要搭建两台MySQL服务器(一主一从),一台作为主服务器,一台作为从服务器,主服务器进行写操作,从服务器进行读操作。工作流程主服务器:开启二进制日志配置唯一的server-id获得mas
千家信息网最后更新 2026年11月02日如何在linux系统中搭建mysql主从服务器?

实现目标

现在需要搭建两台MySQL服务器(一主一从),一台作为主服务器,一台作为从服务器,主服务器进行写操作,从服务器进行读操作。

工作流程

主服务器:

开启二进制日志

配置唯一的server-id

获得master二进制日志文件名及位置

创建一个用于slave和master通信的用户账号。

从服务器:

配置唯一的server-id

使用master分配的用户账号读取master二进制日志

启用slave服务。

准备工作

主从数据库版本最好一样

主从数据库内数据保持一致

主数据库:192.168.244.201 : 3306

从数据库:192.168.244.202 : 3306

开始配置

配置 Master 主服务器

找到主数据库的配置文件my.cnf(Windows中是my.ini),我的在/etc/my.cnf
在[mysqld]部分插入如下两行:

[mysqld]log-bin=mysql-bin #开启二进制日志server-id=201 #设置server-id,唯一值,标识主机

重启mysql服务

systemctl restart mysqld

创建用于主从同步的账号/密码

进入MySQL : mysql -u root -p 回车输入密码。

我创建的用户名叫"master_root"密码是"MySql@6688"

【注意:由于之前把密码改成支持简单密码123456的了,导致这里新建用户出现一些问题,说密码不符合策略等,后来干脆我重装mysql,使用默认复杂密码了,就没有这么多问题了。习惯就好其实。】

下面我都用的%,没有写具体ip,你可以自行决定。

#创建用户(IP为可访问该master的IP,任意IP就写'%')mysql> CREATE USER 'master_root'@'192.168.244.202' IDENTIFIED BY 'MySql@6688';#分配权限(IP为可访问该 master的IP,任意IP就写'%')mysql> GRANT REPLICATION SLAVE ON *.* TO 'master_root'@'192.168.244.202'; #刷新权限mysql>flush privileges;

查看master状态,记录二进制文件名(mysql-bin.000001)和位置(154).后面配从库要用。

show master status;

配置 Slave 主服务器

修改my.cnf 文件

vim /etc/my.cnf
[mysqld]server-id=202 #设置server-id,唯一值,唯一标识从库

重启mysql服务

systemctl restart mysqld

登录进入mysql,执行同步sql语句(主服务器名,用于主从的用户名,密码,二进制文件名,位置)

mysql> CHANGE MASTER TO    -> MASTER_HOST='192.168.244.201',    -> MASTER_USER='master_root',    -> MASTER_PASSWORD='MySql@6688',    -> MASTER_LOG_FILE='mysql-bin.000001',    -> MASTER_LOG_POS=154;

启动slave同步进程

mysql>start slave;

查看slave状态

show slave status\G

注意后面不要分号;否则最后一行显示报错如下:

ERROR: No query specified

当Slave_IO_Running和Slave_SQL_Running都为YES的时候就表示主从同步设置成功了。

接下来就可以进行一些验证了,比如在主master数据库的test数据库的一张表中插入一条数据,在slave的test库的相同数据表中查看是否有新增的数据即可验证主从复制功能是否有效,还可以关闭slave(mysql>stop slave;),然后再修改master,看slave是否也相应修改(停止slave后,master的修改不会同步到slave),就可以完成主从复制功能的验证了。

其他相关参数:

master开启二进制日志后默认记录所有库所有表的操作,可以通过配置来指定只记录指定的数据库甚至指定的表的操作,具体在mysql配置文件的[mysqld]可添加修改如下选项:

不同步哪些数据库

binlog-ignore-db = mysqlbinlog-ignore-db = testbinlog-ignore-db = information_schema

只同步哪些数据库,除此之外,其他不同步

binlog-do-db = game

如之前查看master状态时就可以看到只记录了test库,忽略了manual和mysql库。

以上就是linux下搭建mysql主从服务器的详细内容,更多请关注其它相关文章!

服务 数据 服务器 数据库 主从 密码 同步 配置 二进制 文件 用户 日志 位置 文件名 状态 账号 验证 功能 权限 标识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网与科技 河南云网互联网络科技有限公司 互联网科技工作委员会 深圳恒合互联网络科技有限公司 科技制造互联网公司 华宇互联网科技 互联网金融科技创新 腾讯科技 互联网女皇 顺玮阁互联网科技 郑州华宇互联网科技 互联网软件和科技 赶超互联网科技 微信多开 注册互联网科技公司经营范围大全 搜狐科技互联网 天津腾达互联网科技有限公司 互联网金融科技名词解释 版纳互联网科技选哪家 北京天晋互联网科技有限公司 科技信息时代互联网发展 北京品多多互联网科技有限公司 精品咖啡豆 互联网科技工作委员会 互联网最新的科技 工业互联网科技新基建 成都玖崟互联网科技有限公司乐商圈怎么样 互联网科技公司有风险吗 杭州披云加互联网科技有限公司 福州德业互联网科技 互联网科技手抄报图片 东风日产互联网科技公司叫什么
0