mysql 主从复制配置过程【基于ubuntu18.04 server】

本文详细介绍了如何在Ubuntu18.04系统上配置MySQL5.7的主从同步,包括安装数据库、创建远程访问账户、修改配置文件、授权和启动同步等步骤,确保主从数据库之间的数据实时更新。同时提供了配置失败时的检查建议,帮助排查问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考Ubuntu 搭建 MySQL 主从

系统版本:Ubuntu 18.04
MySQL 版本:MySQL 5.7.x
主 MySQL 服务器 IP:192.168.211.136
从 MySQL 服务器 IP:192.168.21.137
环境:两台虚拟机即可
建议:从上往下,按顺序执行

安装数据库

# 主、从机都需要安装
sudo apt install mysql-server

登录数据库

# 查看mysql初始化登录和密码
sudo cat /etc/mysql/debian.cnf
# 得到以下结果
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint  	# 登录用户名
password = HYmNHYVh12W*****		# 初始密码
socket   = /var/run/mysqld/mysqld.sock

数据库配置(192.168.211.136)

# 登录mysql
mysql -udebian-sys-maint -pHYmNHYVh12W*****
# 进入mysql数据库
# 选择mysql库
use mysql;
# 创建允许远程访问的账户和密码
CREATE USER 'master'@'%' IDENTIFIED BY 'master';  # 账户密码都为master
# 允许远程访问
GRANT ALL PRIVILEGES ON *.* TO 'master'@'*.*.*.*' IDENTIFIED BY 'master' WITH GRANT OPTION;
# 更新设置
flush privileges;
# 退出mysql
exit;

数据库配置(192.168.211.137)

# 登录mysql
mysql -udebian-sys-maint -pHYmNHYVh12W*****
# 进入mysql数据库
# 选择mysql库
use mysql;
# 创建允许远程访问的账户和密码
CREATE USER 'slave'@'%' IDENTIFIED BY 'slave';  # 账户密码都为slave
# 允许远程访问
GRANT ALL PRIVILEGES ON *.* TO 'slave'@'*.*.*.*' IDENTIFIED BY 'slave' WITH GRANT OPTION;
flush privileges;
# 退出mysql
exit;

数据库配置文件修改(192.168.211.136和192.168.211.137都需要进行以下动作)

# ubuntu shell
# 编辑文件/etc/mysql/mysql.conf.d/mysqld.cnf
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

# mysqld.cnf 文件 插入以下内容  `test` 为同步的数据库
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
binlog_cache_size= 4m
max_binlog_cache_size= 512m
binlog_do_db = test

# 将mysqld.cnf中的 bind-address= 127.0.0.1 注释,注释才能最终允许远程访问
# bind-address          = 127.0.0.1

# 退出保存文件:wq

# 重启mysql
sudo /etc/init.d/mysql restart

主机授权给从机的同步(在192.168.211.136操作)

# 登录mysql
mysql -uroot -p  # 使用已配置好的账户登录即可

# 创建数据库
create database test;
# `主数据`库授权给从`数据库`
grant replication slave on *.* to 'slave'@'192.168.211.137' identified by 'slave';
# 更新设置
flush privileges;
# 退出mysql
exit;

192.168.211.137开启同步

# 登录mysql
mysql -uroot -p # 替换成已配置好的账户登录
# 登录成功后
start slave;
# 查看启动状态
show slave status\G;

成功状态如下
在这里插入图片描述

至此,配置成功!

# 在主数据库中的,test库 ,创建表table_first
# 在从数据库中,show tables,若table_first存在,则表示已配置成功

配置失败检查建议

# 在 show slave\G;的显示结果中,如果出现以下提示,就是从数据库连接主数据库失败
Slave_IO_Running: Connecting
# 1. 手动检查远程master账户,的远程登录是否启动成功
# 2. 检查 /etc/mysql/mysql.conf.d/mysqld.cnf文件中内容行 bind-address= 127.0.0.1,是否注释
# 	 若未注释,需要注释改行,并且重启数据库,/etc/init.d/mysql restart
# 3. 修改完成后,重新拉起同步slave,在从机中(192.168.211.137),数据库中执行
stop slave;
start slave;
show slave status\G;

至此结束,本文参考文章跳转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值