MySQL的主从复制配置
Windows下安装参考: Mysql从安装、登录到使用命令使用详情(一) |
参考目录(已安装直接参考 【第二部分 配置主从复制】)
- 一、Linux(Ubuntu)下安装 MySQL 8.0
- 1、安装
- 2、配置
- 二、配置主从复制
- 1、主机配置(Master 192.168.10.106)
- 1.1 修改配置文件
- 1.2 配置用户
- 1.3 重启服务
- 1.4 登录查看状态
- 2、从机配置(Slave 192.168.10.109)
- 2.1 修改配置文件
- 2.2 同步命令下发
- 2.3 启动从库的复制进程
- 2.4 查看从机状态
- 2.5 查看错误日志(状态异常时)
- 3、当主库崩溃后,提升从库为主库
- 3.1 停止从库的复制
- 3.2 将从库提升为主库并接受新的写入操作
- 3.3 重新配置其他从库连接到新的主库
一、Linux(Ubuntu)下安装 MySQL 8.0
1、安装
apt install -y mysql-server-8.0
2、配置
第一次可直接进入无密码
mysql -u root -p
切换数据库
use mysql;
修改密码
update user set plugin='mysql_native_password' where user='root';
修改root用户的权限
update user set host = '%' where user = 'root';
允许外部登录
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
刷新权限退出
flush privileges;
quit;
关闭MYSQL的远程关闭连接限制
vim /etc/mysql/mysql.conf.d/mysqld.cnf
修改bind-address为 0.0.0.0
bind-address = 0.0.0.0
重启mysql服务
systemctl restart mysql
二、配置主从复制
1、主机配置(Master 192.168.10.106)
1.1 修改配置文件
vim /etc/mysql/mysql.conf.d/mysql.cnf
内容如下
[mysqld]
# 开启二进制日志(必须)
log-bin = mysql-bin
# MySQL服务ID,保证整个集群环境中唯一,默认为1(必须)
server-id = 1
# 二进制日志格式,默认ROW(可选)
binlog_format = ROW
# 忽略的数据,不需要同步的数据库
binlog-ignore-db = mysql
binlog-ignore-db = sys
binlog-ignore-db = performance_schema
binlog-ignore-db = information_schema
# 指定同步的数据库
# binlog-do-db = db01
1.2 配置用户
创建mysql登录用户、并赋予复制的权限给从库同步复制使用
登录
mysql -u root -p
切换库
use mysql;
创建并配置用户
CREATE USER 'xcuser'@'%' IDENTIFIED BY '123456';
grant REPLICATION slave on *.* to 'xcuser'@'%';
alter user 'xcuser'@'%' identified with mysql_native_password by '123456';
刷新
FLUSH PRIVILEGES;
quit;
1.3 重启服务
systemctl restart mysql
1.4 登录查看状态
show master status;
记住这两个文件名和位置,后面从机同步命令下发会使用
2、从机配置(Slave 192.168.10.109)
2.1 修改配置文件
vim /etc/mysql/mysql.conf.d/mysql.cnf
内容如下
[mysqld]
# 开启二进制日志(必须)
log-bin = mysql-bin
# MySQL服务ID,保证整个集群环境中唯一,默认为1(必须)
server-id = 2
# 二进制日志格式,默认ROW(可选)
binlog_format = ROW
# 忽略的数据,不需要同步的数据库
binlog-ignore-db = mysql
binlog-ignore-db = sys
binlog-ignore-db = performance_schema
binlog-ignore-db = information_schema
# 指定同步的数据库
# binlog-do-db = db01
2.2 同步命令下发
change replication source to source_host='192.168.10.106',source_user='xcuser',source_password='123456',source_log_file='mysql-bin.000015',source_log_pos=1275343;
2.3 启动从库的复制进程
start slave;
2.4 查看从机状态
show replica status \G;
2.5 查看错误日志(状态异常时)
tail -f /var/log/mysql/error.log
3、当主库崩溃后,提升从库为主库
3.1 停止从库的复制
stop slave;
3.2 将从库提升为主库并接受新的写入操作
reset master;
3.3 重新配置其他从库连接到新的主库
change master to master_host='192.168.10.116', MASTER_AUTO_POSITION=1;
start slave;