麒麟v10sp3系统mariadb10.3.39主从同步
主库配置
vim /etc/my.cnf #添加以下内容,然后重启数据库
[mysqld]
# 设置服务器ID,主库的ID必须是唯一的
server-id=1
# 启用二进制日志,这是主从复制的基础
log-bin=mariadb-bin
# 设置二进制日志格式,mixed是推荐的格式
binlog_format=mixed
# 设置需要同步的数据库,如果需要同步所有数据库则可以不设置
# binlog-do-db=your_database_name
# 添加账号,授予改用户分配主从复制权限
grant all on *.* to lzy@'%' identified by 'lzy123.com';
在主库上执行以下命令,获取主库的二进制日志文件名和位置:
MariaDB [(none)]> show master status; #通过指令,查看二进制日志坐标
+--------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mariadb-bin.000002 | 344 | | |
+--------------------+----------+--------------+------------------+
字段含义说明:
file:从哪个日志文件开始推送日志文件
position:从哪个位置开始推送日志
binlog_ignore_db:指定不需要同步的数据库
从库配置
vim /etc/my.com #添加以下内容,然后重启数据库
[mysqld]
# 设置服务器ID,主库的ID必须是唯一的
server-id=2
#只读模式
read_only=1
查看:
MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE 'read_only';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| read_only | ON |
+---------------+-------+
# 如果返回read_only=ON,则表示从库已成功设置为只读模式
连接配置:
从库配置,连接主库日志文件,开启复制
CHANGE MASTER TO
MASTER_HOST='主库IP地址',
MASTER_USER='复制用户',
MASTER_PASSWORD='复制用户密码',
MASTER_LOG_FILE='主库二进制日志文件名',
MASTER_LOG_POS=主库二进制日志位置;
---------------------------------------------
CHANGE MASTER TO MASTER_HOST='172.16.1.51', MASTER_USER='lzy', MASTER_PASSWORD='lzy123.com', MASTER_LOG_FILE='{{ mysql_file.stdout_lines }}', MASTER_LOG_POS={{ mysql_po.stdout_lines }};
CHANGE MASTER TO
MASTER_HOST='172.16.1.51',
MASTER_USER='lzy',
MASTER_PASSWORD='lzy123.com',
MASTER_LOG_FILE= "{{ mysql_file.stdout_lines }}",
MASTER_LOG_POS= "{{ mysql_po.stdout_lines }}",
执行以下命令启动从库复制:
START SLAVE;
查看结果:
这两个字段为yes表示成功
show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes