栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

MySQL数据库主从同步

MySQL数据库主从同步

MySQL数据库主从同步
    • 主从配置
    • 错误总结

主从配置

准备两台服务器或者虚机,这里两台服务器的IP用127.0.0.1(主)和127.0.0.2(从)代替。

1、修改数据库配置(/etc/mysql/my.cnf)

配置好之后重启数据库。

127.0.0.1

[mysqld]
log-bin=mysql-bin
server-id=1
replicate-do-db=db_name
log_slave_updates
slave-skip-errors=all

127.0.0.2

[mysqld]
log-bin=mysql-bin
server-id=2
replicate-do-db=db_name
log_slave_updates
slave-skip-errors=all

参数注释:

参数注释
log-binlog-bin文件路径,开启二进制日志
server-id设置server-id,必须唯一
replicate-do-db设置同步的数据库
log_slave_updates从库作为其他从库的主库时(主主同步)一定要添加,不作主库可不加
slave-skip-errors跳过错误,视情况而定是否使用该参数

备注: [mysqld] 这个头如果配置文件中没有,别忘记加,否则会报错。

2、重启后,登录数据库进行账号授权

具体分配的权限可自行选择

mysql> CREATE USER 'sync'@'127.0.0.2' IDENTIFIED BY 'slavepassword';# 创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO 'sync'@'127.0.0.2';# 分配权限
mysql> flush privileges;   # 刷新权限

3、127.0.0.1查看master状态,二进制文件名(mysql-bin.000001)和位置(1528)

mysql > show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 1528     |              |                  |
+------------------+----------+--------------+------------------+

4、127.0.0.2执行同步SQL语句

mysql > CHANGE MASTER TO MASTER_HOST='127.0.0.1',MASTER_USER='sync',MASTER_PASSWORD='slavepassword',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=1528;

参数注释:

参数注释
MASTER_HOST主库IP
MASTER_USER账号
MASTER_PASSWORD密码
MASTER_LOG_FILE主库二进制文件名
MASTER_LOG_POS位置

5、启动slave同步进程并查看slave状态

mysql> start slave;
mysql> show slave statusG;

Slave_IO_State: Waiting for master to send event
Master_Host: 127.0.0.1
Master_User: sync
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.00001
Read_Master_Log_Pos: 1528
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Slave_IO_Running和Slave_SQL_Running状态均为YES的时候就表示主从同步设置成功了。

如果需要配置成主主同步,则将127.0.0.1服务器再关联到127.0.0.2即可

mysql > CHANGE MASTER TO MASTER_HOST='127.0.0.2',MASTER_USER='sync',MASTER_PASSWORD='slavepassword',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=1528;
错误总结

在配置过程中也会出现一些错误,在这里做下总结。

1、io running 连接失败

Slave_IO_Running: Connecting

这个情况是连接不到主库,可以从以下几点进行排查。
1、服务器安全组端口权限
2、防火墙
3、账号权限

2、Slave_IO_Running和Slave_SQL_Running状态均为YES,但同步不成功。

首先要保证主库的从库的数据相同,另外在修改my.cnf有一个参数,之前提到过的。slave-skip-errors使用该参数可以解决,该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况。

3、主从库意外重启

mysql意外重启后再次启动slave可能会出现无法启动等情况。

mysql> reset slave;

reset之后即可重新CHANGE MASTER,关联同步。

以上仅为个人在配置过程中遇到的问题与解决方法,仅供参考。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/326731.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号