MySql / MariaDB 构建主从复制

~~ !!!环境介绍:

  • 主服务器 -> ip:192.168.0.104、系统:centos7、数据库:mariadb
  • 从服务器 -> ip:192.168.0.105、系统:centos7、数据库:mariadb
  • 从服务器 -> ip:192.168.0.106、系统:centos7、数据库:mariadb

~~ !!!请保证主服务器防火墙关闭,下面开始构建主从复制

一、配置主机 192.168.0.104

1、修改主服务器下 /etc/my.cnf 文件,在 [mysqld] 下添加如下代码,可参考下图:

// 如果不知道 my.cnf 文件在哪,可使用 find / -name my.cnf 命令查找
// 这里 server-id 中的 104 是本机ip的尾号,可随意设置数字,但要保证不重复
server-id = 104
log-bin = master-bin
log-bin-index = master-bin.index

2、启动 / 重启 数据库服务,可参考以下命令

// mariadb 启动数据库 ↓
service mariadb start
// mariadb 重启数据库 ↓
service mariadb restart

// mysql5.0 启动数据库 ↓
service mysqld start
// mysql5.0 重启数据库 ↓
service mysqld restart

// mysql5.5.7 启动数据库 ↓
service mysql start
// mysql5.5.7 重启数据库 ↓
service mysql restart

3、在主服务器数据库中创建一个用户:admin_x,密码:123456

// 这里的 @localhost 是限制用户只能在 固定的地址 localhost 登入,可根据个人需求修改
create user admin_x@localhost identified by '123456';

4、在主机中查看创建的用户,结果如下图:

// 在 数据库:mysql,表:user下查看用户 ↓
select host, user, password from mysql.user;

5、在主机中依次为从机分配权限,并刷新权限表:

// 为从机 192.168.0.105分配权限
grant replication slave on *.* to 'admin_x'@'192.168.0.105' identified by '123456';
// 为从机 192.168.0.106分配权限
grant replication slave on *.* to 'admin_x'@'192.168.0.106' identified by '123456';
// 刷新权限表
flush privileges;

6、查看主机二进制日志文件名与位置

// 查看主机二进制日志文件名与位置
show master status;

二、配置从机 192.168.0.105

1、修改 my.cnf 文件,在[mysqld] 下添加以下代码:

// 这里 server-id 中的 105 是本机ip的尾号,可随意设置数字,但要保证不重复
server-id = 105
relay-log = slave-relay-bin
relay-log-index = slave-relay-bin.index

2、启动 / 重启 并 进入数据库,设置连接

// 告诉从服务器 用哪个账号、用哪个密码、在哪里 读主服务器的日志文件
CHANGE MASTER TO
    MASTER_HOST = '192.168.0.104',
    MASTER_USER = 'admin_x',
    MASTER_PASSWORD = '123456',
    MASTER_LOG_FILE = 'master-bin.000004',
    MASTER_LOG_POS = 745;

3、启动从服务,并查看状态,确保服务启动

// 启动从服务器
start slave
// 查看从机状态,如下图
show slave status \G;

三、配置从机 192.168.0.106(基本重复第二大步骤)

1、修改 my.cnf 文件,在[mysqld] 下添加以下代码:

// 这里 server-id 中的 106 是本机ip的尾号,可随意设置数字,但要保证不重复
server-id = 106
relay-log = slave-relay-bin
relay-log-index = slave-relay-bin.index

2、启动 / 重启 并 进入数据库,设置连接

// 告诉从服务器 用哪个账号、用哪个密码、在哪里 读主服务器的日志文件
CHANGE MASTER TO
    MASTER_HOST = '192.168.0.104',
    MASTER_USER = 'admin_x',
    MASTER_PASSWORD = '123456',
    MASTER_LOG_FILE = 'master-bin.000004',
    MASTER_LOG_POS = 745;

3、启动从服务,并查看状态

// 启动从服务器
start slave
// 查看从机状态,如下图
show slave status \G;

四、测试主从复制

1、在主服务器 192.168.0.104 中创建一个新的数据库,并查看数据库列表

create database if not exists test_x default charset utf8 collate utf8_general_ci;
// 显示主机数据库列表
show databases;

2、在从机 192.168.0.105 中查看是否有新数据库

// 显示从机数据库列表
show databases;

3、在从机 192.168.0.106 中查看是否有新数据库

// 显示从机数据库列表
show databases;

~~ !!! 配置完成

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容