针对linux配置mysql主从复制和搭建mysql主从复制这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展centos7mysql多实例安装主从复制、dockermysql主从复制、Doc
针对linux 配置 mysql 主从复制和搭建mysql主从复制这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展centos7 mysql 多实例安装 主从复制、docker mysql 主从复制、Docker 搭建 MySQL 主从复制、Linux - centos7 下 MySQL (mariadb) 和 主从复制等相关知识,希望可以帮助到你。
本文目录一览:- linux 配置 mysql 主从复制(搭建mysql主从复制)
- centos7 mysql 多实例安装 主从复制
- docker mysql 主从复制
- Docker 搭建 MySQL 主从复制
- Linux - centos7 下 MySQL (mariadb) 和 主从复制
linux 配置 mysql 主从复制(搭建mysql主从复制)
1. 准备工作,2 台服务器都安装最好一个版本的 mysql
主:192.168.100.1
从:192.168.100.2
a. 修改主数据库 /etc/my.cnf,mysqld 下添加。修改之后重启。
[mysqld]
server-id=1
log-bin=mysqlmaster-bin.log
b. 修改从数据库 /etc/my.cnf,mysqld 下添加。修改之后重启
[mysqld]
server-id=2
log-bin=mysqlmaster-bin.log
2. 主库操作
①主库创建用于主从复制的账户
mysql>create user sync@''192.168.100.2'' identified by ''sync'';
mysql>grant replication slave on *.* to sync@''192.168.100.2'';
# 注意 192.168.100.2 为从库的 ip 地址,需要换成实际的。我设置的主从账户和密码都为 sync,可以更换。
②. 主库锁表,禁止再插入数据以获取主数据库二进制日志坐标。
mysql>flush tables with read lock;
③新开一个会话窗口,进入 mysql 库,执行
mysql> show master status;
mysql> SHOW MASTER STATUS;
+------------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------------+----------+--------------+------------------+-------------------+
| mysqlmaster-bin.000001 | 500 | | | |
+------------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
#记录file和position,稍后需要在从库配置
④主服务器使用 mysqldump 命令创建数据快照
mysqldump -uroot -p -h127.0.0.1 -P3306 --all-databases --triggers --routines --events >/data/all.sql
⑤主库解锁
mysql> unlock tables;
3. 从库服务器操作
mysql -uroot -p -h127.0.0.1 -P3306 < all.sql
# mysql -uroot -p
mysql> CHANGE MASTER TO MASTER_HOST=''192.168.100.1'',MASTER_USER=''sync'',MASTER_PASSWORD=''sync'',MASTER_LOG_FILE=''mysqlmaster-bin.000001'',MASTER_LOG_POS=500;
# 然后启动从数据库的复制线程:
mysql> start slave;
# 查询数据库的slave状态:
mysql> show slave status \G
# 下面两个参数都是Yes,说明主从配置成功!
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
4. 测试,从主库创建数据库和增删改查,然后到从库去查看。
------------------------------------------end------------------------------------------------
#如果要清除主从配置,需要进入从库执行 2 条命令;
stop slave;
reset slave all;
centos7 mysql 多实例安装 主从复制
- 将/etc/selinux/config里的SELINUX设置成:disabled
- 解压mysql
- 创建mysql实例用户及文件
- 配置Mysql的配置文件/etc/my.cnf
-
[mysqld_multi] mysqld = /home/mysql/mysql/bin/mysqld mysqladmin = /home/mysql/mysql/bin/mysqladmin log = /tmp/mysql_multi.log [mysqld1] datadir = /home/mysql/data3306 socket = /tmp/mysql.sock1 port = 3306 user = mysql performance_schema = off innodb_buffer_pool_size = 32M bind_address = 0.0.0.0 skip-name-resolve = 0 log-bin=mysql-bin binlog_format=mixed server-id=1 [mysqld2] datadir = /home/mysql/data3307 socket = /tmp/mysql.sock2 port = 3307 user = mysql performance_schema = off innodb_buffer_pool_size = 32M bind_address = 0.0.0.0 skip-name-resolve = 0 log-bin=mysql-bin binlog_format=mixed server-id=2 [mysqld3] datadir = /home/mysql/data3308 socket = /tmp/mysql.sock3 port = 3308 user = mysql performance_schema = off innodb_buffer_pool_size = 32M bind_address = 0.0.0.0 skip-name-resolve = 0 log-bin=mysql-bin binlog_format=mixed server-id=3
- 主从复制:
master: GRANT replication slave ON *.* TO ''bhis''@''%'' IDENTIFIED BY ''bhis''; show master status; salve: mysql> CHANGE MASTER TO -> MASTER_HOST="192.168.135.129", -> MASTER_USER="bhis", -> MASTER_PASSWORD="bhis", -> MASTER_LOG_FILE="mysql-bin.000001", -> MASTER_LOG_POS=437; start slave; show slave status;
详情请看这位大神的
docker mysql 主从复制
测试环境:linux、docker,可以参考在 linux 环境安装 docker 可以参考
-
什么是主从复制??
主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从数据库上,然后在从数据库上对这些日志进行重新执行,从而使从数据库和主数据库的数据保持一致。
-
主从复制的原理
1. MySql主库在事务提交时会把数据变更作为事件记录在二进制日志Binlog中;
2. 主库推送二进制日志文件Binlog中的事件到从库的中继日志Relay Log中,
之后从库根据中继日志重做数据变更操作,通过逻辑复制来达到主库和从库的数据一致性;
3. MySql通过三个线程来完成主从库间的数据复制,其中Binlog Dump线程跑在主库上,
I/O线程和SQL线程跑着从库上;
4. 当在从库上启动复制时,首先创建I/O线程连接主库,主库随后创建Binlog Dump线程
读取数据库事件并发送给I/O线程,I/O线程获取到事件数据后更新到从库的中继日志Relay Log中去,
之后从库上的SQL线程读取中继日志Relay Log中更新的数据库事件并应用
-
下面来实操,先配置主库:
docker run -p 3307:3306 --name=mysql-master --privileged=true \
-v /data/mysql-master/log:/var/log/mysql \
-v /data/mysql-master/data:/var/lib/mysql \
-v /data/mysql-master/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
- 进入 mysql 的配置文件夹
/data/mysql-master/conf
中创建一个配置文件my.cnf
:
touch my.cnf
- 然后在 my.cnf 添加以下内容:
[mysqld]
## 设置server_id,同一局域网中需要唯一
server_id=101
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql
## 开启二进制日志功能
log-bin=mall-mysql-bin
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed
## 二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062
- 修改完配置后重启实例
docker restart mysql-master
- 进入
mysql-master
容器中
docker exec -it mysql-master /bin/bash
- 进入 mysql,然后配置用户和授权
1. mysql -uroot -p 执行完,输入密码
2. CREATE USER ''slave''@''%'' IDENTIFIED BY ''123456'';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ''slave''@''%'';
以上主库已经完成。
下面配置从库:
- 创建从库容器
docker run -p 3308:3306 --name=mysql-slave --privileged=true \
-v /data/mysql-slave/log:/var/log/mysql \
-v /data/mysql-slave/data:/var/lib/mysql \
-v /data/mysql-slave/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
- 在 mysql 的配置文件夹
/data/mysql-slave/conf
中创建一个配置文件my.cnf
:
touch my.cnf
- 修改配置文件 my.cnf
[mysqld]
## 设置server_id,同一局域网中需要唯一
server_id=102
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql
## 开启二进制日志功能,以备Slave作为其它数据库实例的Master时使用
log-bin=mall-mysql-slave1-bin
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed
## 二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062
## relay_log配置中继日志
relay_log=mall-mysql-relay-bin
## log_slave_updates表示slave将复制事件写进自己的二进制日志
log_slave_updates=1
## slave设置为只读(具有super权限的用户除外)
read_only=1
- 修改完配置后重启实例:
docker restart mysql-slave
将主从数据库进行连接
- 连接到主数据库的 mysql 客户端,查看主数据库状态:
show master status
第一个红圈是同步的文件,第二个是同步到位置点
- 进入
mysql-slave
容器中:
docker exec -it mysql-slave /bin/bash
- 在容器中使用 mysql 的登录命令连接到客户端:
mysql -uroot -p
- 在从数据库中配置主从复制:
change master to master_host=''192.168.6.132'', master_user=''slave'', master_password=''123456'', master_port=3307, master_log_file=''mall-mysql-bin.000001'', master_log_pos=617, master_connect_retry=30;
-
主从复制命令参数说明:
- master_host:主数据库的 IP 地址;
- master_port:主数据库的运行端口;
- master_user:在主数据库创建的用于同步数据的用户账号;
- master_password:在主数据库创建的用于同步数据的用户密码;
- master_log_file:指定从数据库要复制数据的日志文件,通过查看主数据的状态,获取 File 参数;
- master_log_pos:指定从数据库从哪个位置开始复制数据,通过查看主数据的状态,获取 Position 参数;
- master_connect_retry:连接失败重试的时间间隔,单位为秒。
-
查看主从同步状态:
show slave status \G;
Copy to clipboardErrorCopied
- 从数据库状态显示如下:
- 开启主从同步:
start slave;
主从复制测试
主从复制的测试方法有很多,可以在主实例中创建一个数据库,看看从实例中是否有该数据库,如果有,表示主从复制已经搭建成功。
- 在主实例中创建一个数据库
mall
;
- 在从实例中查看数据库,发现也有一个
mall
数据库,可以判断主从复制已经搭建成功。
到这里,画一个完美的符号。
这期间碰到几个问题:
1. docker 安装 mysql 容器的时候出现问题:docker 安装 mysql chown: changing ownership of ''/var/lib/mysql/'': Permission denied
2. 主从同步出现一下错误:
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
解决方法:导致 lave_IO_Running 为 connecting 的原因主要有以下 3 个方面:
1、网络不通
2、密码不对
3、pos 不对
主要参考于:http://www.macrozheng.com/#/reference/mysql_master_slave?id=%e4%bb%80%e4%b9%88%e6%98%af%e4%b8%bb%e4%bb%8e%e5%a4%8d%e5%88%b6%ef%bc%9f
Docker 搭建 MySQL 主从复制
1、运行两个 MySQL 容器:
# mysql-master
docker run -d --name mysql-master -v /home/soft/mysql/mster:/var/lib/mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.28
# mysql-slave
docker run -d --name mysql-slave -v /home/soft/mysql/slave:/var/lib/mysql -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 --link mysql-master mysql:5.7.28
2、进入主容器:
docker exec -it mysql-master bash
apt-get update & apt-get install vim
编辑配置文件:
vi /etc/mysql/my.cnf
在最后添加
[mysqld]
# 同一局域网内注意要唯一
server-id=1
# 开启二进制日志功能
log-bin=mysql-master-bin
docker restart mysql-master
3、进入从容器:
docker exec -it mysql-slave bash
apt-get update & apt-get install vim
编辑配置文件:
vi /etc/mysql/my.cnf
在最后添加
[mysqld]
# 同一局域网内注意要唯一
server-id=2
docker restart mysql-slave
4、进入主容器:
docker exec -it mysql-master mysql -u root -p
创建用户并赋予复制权限:
GRANT replication slave ON *.* TO ''slave''@''%'' IDENTIFIED BY ''123456'';
show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| mysql-master-bin.000001 | 609 | | | |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set
5、进入从容器:
docker exec -it mysql-slave mysql -u root -p
执行命令停止 slave:
stop slave;
执行命令切换主从复制配置:
change master to master_host=''mysql-master'',master_user=''slave'',master_password=''123456'',master_log_file=''mysql_master_bin.000001'',master_log_pos=609;
执行命令启动 slave:
start slave;
查看配置状态:
+----------------------------------+-------------+-------------+-------------+---------------+-------------------+---------------------+-------------------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+-------------------------------+---------------+---------------+----------------+----------------+-----------------------------+------------------+--------------------------------------+----------------------------+-----------+---------------------+--------------------------------------------------------+--------------------+-------------+-------------------------+--------------------------+----------------+--------------------+--------------------+-------------------+---------------+----------------------+--------------+--------------------+
| Slave_IO_State | Master_Host | Master_User | Master_Port | Connect_Retry | Master_Log_File | Read_Master_Log_Pos | Relay_Log_File | Relay_Log_Pos | Relay_Master_Log_File | Slave_IO_Running | Slave_SQL_Running | Replicate_Do_DB | Replicate_Ignore_DB | Replicate_Do_Table | Replicate_Ignore_Table | Replicate_Wild_Do_Table | Replicate_Wild_Ignore_Table | Last_Errno | Last_Error | Skip_Counter | Exec_Master_Log_Pos | Relay_Log_Space | Until_Condition | Until_Log_File | Until_Log_Pos | Master_SSL_Allowed | Master_SSL_CA_File | Master_SSL_CA_Path | Master_SSL_Cert | Master_SSL_Cipher | Master_SSL_Key | Seconds_Behind_Master | Master_SSL_Verify_Server_Cert | Last_IO_Errno | Last_IO_Error | Last_SQL_Errno | Last_SQL_Error | Replicate_Ignore_Server_Ids | Master_Server_Id | Master_UUID | Master_Info_File | SQL_Delay | SQL_Remaining_Delay | Slave_SQL_Running_State | Master_Retry_Count | Master_Bind | Last_IO_Error_Timestamp | Last_SQL_Error_Timestamp | Master_SSL_Crl | Master_SSL_Crlpath | Retrieved_Gtid_Set | Executed_Gtid_Set | Auto_Position | Replicate_Rewrite_DB | Channel_Name | Master_TLS_Version |
+----------------------------------+-------------+-------------+-------------+---------------+-------------------+---------------------+-------------------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+-------------------------------+---------------+---------------+----------------+----------------+-----------------------------+------------------+--------------------------------------+----------------------------+-----------+---------------------+--------------------------------------------------------+--------------------+-------------+-------------------------+--------------------------+----------------+--------------------+--------------------+-------------------+---------------+----------------------+--------------+--------------------+
| Waiting for master to send event | mysql1 | slave | 3306 | 60 | mysql1-bin.000001 | 609 | 59e0b81b9fbb-relay-bin.000002 | 321 | mysql1-bin.000001 | Yes | Yes | | | | | | | 0 | | 0 | 609 | 535 | None | | 0 | No | | | | | | 0 | No | 0 | | 0 | | | 1 | 1625200d-3672-11ea-ae5f-0242ac110002 | /var/lib/mysql/master.info | 0 | NULL | Slave has read all relay log; waiting for more updates | 86400 | | | | | | | | 0 | | | |
+----------------------------------+-------------+-------------+-------------+---------------+-------------------+---------------------+-------------------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+-------------------------------+---------------+---------------+----------------+----------------+-----------------------------+------------------+--------------------------------------+----------------------------+-----------+---------------------+--------------------------------------------------------+--------------------+-------------+-------------------------+--------------------------+----------------+--------------------+--------------------+-------------------+---------------+----------------------+--------------+--------------------+
1 row in set
6、验证:
Linux - centos7 下 MySQL (mariadb) 和 主从复制
[TOC]
Linux - centos7 下 MySQL (mariadb) 和 主从复制
MySQL(mariadb)
MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。
开发这个分支的原因之一是:甲骨文公司收购了 MySQL 后,有将 MySQL 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
MariaDB 的目的是完全兼容 MySQL,包括 API 和命令行,使之能轻松成为 MySQL 的代替品。
安装 MySQL (mariadb)
1. 在线下载阿里云的 yum 仓库,以及 epel 仓库
CentOS-Base.repo epel.repo
2. 安装 mysql 的方式
yum install mysql-server mysql -y
3. 安装 mysql 的方式也有 2 种,阿里云官方提供的 mariadb 软件包,版本可能太低,但是下载网速很快,方便学习使用
4. 在企业里面,多半不会使用阿里云的 mariadb 版本,因为版本太低,安全性太低,公司会配置 myariadb 官方的 yum 仓库
1.手动创建mariadb的仓库文件
touch Mariadb.repo
2.写入配置信息
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
3.尝试安装最新版本mariadb
yum install mariadb-server mariadb
5. 使用 mysql,启动
systemctl start mariadb
6. 初始化数据库
mysql_secure_installation
配置数据库的中文支持
1.修改mysql的配置文件,支持中文编码
cat /etc/my.cnf 和我一致就行
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
log-error=/var/log/mysqld.log
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
2.在服务器上,修改了配置文件,都要重启数据库服务
systemctl restart mariadb
3.在utf8编码下,配置mariadb
show create table stu;
create table stu(id int,name char(10));
insert into stu(id,name) values(1,"小王");
show create database s16;
在远程用 mysql 客户端去连接服务端,方式有哪些
1.navicat
2.cmd
mysql -uroot -p -h 192.168.15.53
3.pycharm
4.pymysql python
5.orm django
配置 mysql 支持远程连接的 sql 语句
授权mariadb远程连接
#授予root用户对所有的库表所有的权限,在所有的机器上操作,皆可登录
# 此时是退出mysql数据库在外面执行的
grant all privileges on *.* to root@''%'' identified by ''centos'';(密码)
grant all privileges on *.* to root@''%'' identified by ''root'';
刷新授权表:
flush privileges;
数据库备份与恢复
mysqldump 命令用于备份数据库数据
mysqldump -u root -p --all-databases > /tmp/db.dump
数据导入,方式有2种
1.mysql -uroot -p < /tmp/db.dump
2.进入mysql命令行,输入source /tmp/db.dump
systemctl stop firewalld
systemctl disable firewalld
进入 mariadb 数据库,删除一个 db
[root@master ~]# mysql -uroot -p
MariaDB [(none)]> drop database s11; 进行数据恢复,吧刚才重定向备份的数据库文件导入到 mysql 中
[root@master ~]# mysql -uroot -p < /tmp/db.dump
MYSQL 主从复制
MySQL 数据库的主从复制方案,是其自带的功能,并且主从复制并不是复制磁盘上的数据库文件,而是通过 binlog 日志复制到需要同步的从服务器上。
MySQL 数据库支持单向、双向、链式级联,等不同业务场景的复制。在复制的过程中,一台服务器充当主服务器(Master),接收来自用户的内容更新,而一个或多个其他的服务器充当从服务器(slave),接收来自 Master 上 binlog 文件的日志内容,解析出 SQL,重新更新到 Slave,使得主从服务器数据达到一致。
主从复制的逻辑有以下几种
- 一主一从,单向主从同步模式,只能在 Master 端写入数据
- 一主多从
- 主主复制逻辑架构,此架构可以在 Master1 或 Master2 进行数据写入,或者两端同事写入(特殊设置,互为主从)
主从机制实现原理:
(1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
(2) slave将master的binary log events拷贝到它的中继日志(relay log);
(3) slave重做中继日志中的事件,将改变反映它自己的数据。
master 主库配置
1. 环境准备,准备 2 台机器,一个 master 一个 slave
192.168.15.53 主库
192.168.15.94 从库
2. 配置主库的环境
1.修改主库的配置文件,开启binlog功能
vim /etc/my.cnf
[mysqld]
server-id=1
log-bin=s16-mysql-bin
2.重启数据库
systemctl restart mariadb
3. 创建用于数据同步的账号
create user ''banzhang''@''%'' identified by ''bz666'';
4. 授予这个账号,一个 slave 的身份标识
grant replication slave on *.* to ''banzhang''@''%'';
5. 锁表
flush table with read lock;
6. 数据库信息导出
mysqldump -uroot -p --all-databases > /opt/db.dump
scp /opt/db.dump root@192.168.15.122:/opt/
mariadb 从库的操作
1. 阿里云的源,和官方源,同一安装软件包名如下
yum install mariadb-server mariadb -y
2. 配置从库的配置文件,开启 server-id
vim /etc/my.cnf
写入如下操作
[mysqld]
server-id=3
read-only=true
character-set-server=utf8
collation-server=utf8_general_ci
log-error=/var/log/mysqld.log
3. 重启数据库
systemctl restart mariadb
4. 在从库,通过一条命令,开启主从同步
进入数据库
mysql > change master to master_host=''192.168.15.91'',
master_user=''banzhang'',
master_password=''bz666'',
master_log_file=''s16-mysql-bin.000002'', 这个和下面的参数要和主库的状态一致 即show master status; 查看这两个参数的数值
master_log_pos=331;
5. 开启 slave 同步
start slave;
6. 检查主从同步状态
show slave status\G
当你检查这2条参数,yes的时候,主从ok
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
此时解锁主库!!
此时解锁主库!! unlock tables
此时解锁主库!!
验证主从同步是否正常
检查主从复制是否成功的关键在于
MariaDB [(none)]> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.119.10
Master_User: chaoge
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 1039
Relay_Log_File: slave-relay-bin.000002
Relay_Log_Pos: 537
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
tip:
注意此处还未配置从库的只读模式,只需在 slave 服务器上配置 /etc/my.cnf,加上以下配置,并且在 slave 上创建普通用户,使用普通用户主从同步即可达到只读的效果
如果用 root 用户,无法达到 readonly,这是一个坑
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
log-error=/var/log/mysqld.log
server-id=3
read-only=true
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
我们今天的关于linux 配置 mysql 主从复制和搭建mysql主从复制的分享已经告一段落,感谢您的关注,如果您想了解更多关于centos7 mysql 多实例安装 主从复制、docker mysql 主从复制、Docker 搭建 MySQL 主从复制、Linux - centos7 下 MySQL (mariadb) 和 主从复制的相关信息,请在本站查询。
本文标签: