mariadb实现主从复制及旧服务器实现主从复制的详细步骤
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mariadb实现主从复制及旧服务器实现主从复制的详细步骤相关的知识,希望对你有一定的参考价值。
一、 主从复制(2台新主机)?
1. 实验环境:
?
两台mariadb(5.5.60)一主一从:
主:192.168.36.121
从:192.168.36.120
?
2. 主节点
?
A. 修改配置:vim /etc/my.cnf
[mysqld]
server_id=121
innodb_file_per_table
binlog_format=row 建议
log_bin=/data/bin/mysql-bin
?
B. 查看位置信息:mysql> show master logs;
mysql-bin.000004 245
?
C. 创建复制用户:mysql> grant replication slave on . to [email protected]‘192.168.36.%‘ identified by ‘123456‘;
?
3. 从节点
?
A. 修改配置:vim /etc/my.cnf
[mysqld]
server_id=120
read_only 建议
innodb_file_per_table
?
B. 配置同步信息
mysql>CHANGE MASTER TO
MASTER_HOST=‘192.168.36.121‘,
MASTER_USER=‘repluser‘,
MASTER_PASSWORD=‘123456‘,
MASTER_PORT=3306,
MASTER_LOG_FILE=‘mysql-bin.000004‘,
MASTER_LOG_POS=245;
?
C. 启动复制thread
mysql>start slave;
mysql>show slave status\G
MariaDB [(none)]> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.36.121
Master_User: repluser
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mariadb-bin.000009
Read_Master_Log_Pos: 245
Relay_Log_File: mariadb-relay-bin.000004
Relay_Log_Pos: 531
Relay_Master_Log_File: mariadb-bin.000009
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 245
Relay_Log_Space: 872
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 121
1 row in set (0.00 sec)
?
D. 测试
?
a) 主节点新建一个数据库db1:create database db1;
?
b) 查看新建的库是否成功:show databases;
?
c) 从节点确认是否复制成功:mysql -e ‘show databases’
?
?
二、主从复制示例(旧服务器)
?
1. 实验:基于一台旧服务的基础上,实现主从复制
在上一实验的基础上实现。
?
2. 主节点
?
A. 确认主节点是否二进制日志、server_id是否配置正确
?
a) 主节点二进制日志和server_id配置正常,如下:
cat /etc/my.cnf
[mysqld]
server_id=121
binlog_format=row
log_bin=/data/bin/mysql-bin
?
b) 主节点未配置过,需要添加相应的内容
vim /etc/my.cnf
[mysqld]
server_id=121
binlog_format=row 建议添加
log_bin=/data/bin/mysql-bin(注意目录权限,可以用默认)
systemctl restart mariadb
?
B. 创建复制用户:mysql> grant replication slave on . to [email protected]‘192.168.36.%‘ identified by ‘123456‘;
?
C. 完全备份:mysqldump -A --single-transaction -F --master-data=1 > /data/backup/all.sql
?
D. 查看并记录位置信息:mysql -e ‘show master logs’
?
E. 复制备份文件到从机:scp /data/backup/all.sql 192.168.36.120:/data/backup/
?
3. 从节点
?
A. 确认从节点是否二进制日志、server_id是否配置正确
?
a) 从节点二进制日志和server_id配置正常,如下:
cat /etc/my.cnf
[mysqld]
server_id=120(只要是唯一即可)
read_only
?
b) 从节点未配置过,需要添加相应的内容
vim /etc/my.cnf
[mysqld]
server_id=120
read_only 建议添加
?
B. 删除原有数据库中所有的内容
systemctl stop mariadb
\rm -rf /var/lib/mysql/*
systemctl start mariadb
?
C. 修改备份数据库的内容
vim /data/backup/all.sql
CHANGE MASTER TO
MASTER_HOST=‘192.168.36.121‘,
MASTER_USER=‘repluser‘,
MASTER_PASSWORD=‘123456‘,
MASTER_PORT=3306,
MASTER_LOG_FILE=‘mysql-bin.000010‘,
MASTER_LOG_POS=245;
?
D. 导入完全备份的数据库文件:mysql < /data/backup/all.sql
?
E. 启动复制thread
mysql>start slave;
mysql>show slave status\G
?
F. 测试
?
a) 主节点新建一个数据库db1:create database db1;
?
b) 查看新建的库是否成功:show databases;
?
c) 从节点确认是否复制成功:mysql -e ‘show databases’
以上是关于mariadb实现主从复制及旧服务器实现主从复制的详细步骤的主要内容,如果未能解决你的问题,请参考以下文章