经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MySQL » 查看文章
【实操记录】MySQL主从配置
来源:cnblogs  作者:likingzi  时间:2024/7/12 16:41:58  对本文有异议

本文使用MySQL原生支持的主从同步机制,详细记录了配置步骤及运维操作方法,可供大家直接参考、使用。
本文假设已经部署了两台主机的MySQL软件,且数据库服务正常,详细部署步骤可本站搜索:"mysql二进制安装包部署"

■■ 主从配置

■ master 授权同步账户

  1. CREATE USER 'repl'@'10.19.238.241' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD by 'passwd';
  2. GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repl'@'10.19.238.241';
  3. FLUSH PRIVILEGES;

■ master 修改配置文件

  1. vim /etc/my.cnf
  2. # 配置server id,建议采用ip地址最后一段以便于区分
  3. server_id = 240
  4. log_bin = master-bin
  5. binlog_format = ROW
  6. # 作为从库时使用
  7. relay_log = master-relay-bin
  8. # 作为从库时,来自主库的更新操作是否写入日志,默认值为OFF,配置 on 时,其他节点以此节点做主库时才能进行同步
  9. log_slave_updates = on
  10. # 以下两个为可选选项,见字可知意
  11. expire_logs_days = 7
  12. max_binlog_size = 1G
  13. # 设置系统库的日志不计入binlog
  14. # 注:Binlog_Do_DB/Binlog_Ignore_DB 两个参数互斥,一般只选择其一设置,只能在启动命令行中或配置文件中设置
  15. binlog_ignore_db = mysql
  16. binlog_ignore_db = sys
  17. binlog_ignore_db = information_schema
  18. binlog_ignore_db = performance_schema
  19. # 同步时忽略系统库,但 create user 时数据还是会同步的
  20. replicate_ignore_db = mysql
  21. replicate_ignore_db = sys
  22. replicate_ignore_db = information_schema
  23. replicate_ignore_db = performance_schema
  24. # 同步时忽略系统库的表,这样在 create user 时也不会进行同步了
  25. replicate_wild_ignore_table = mysql.%
  26. replicate_wild_ignore_table = sys.%
  27. replicate_wild_ignore_table = information_schema.%
  28. replicate_wild_ignore_table = performance_schema.%

■ master 服务重启

参见前文:"mysql二进制安装包部署"

■ slave 修改配置文件

vim /etc/my.cnf
同 master,只修改如下3项:

  1. server_id = 25
  2. log_bin = slave-bin
  3. relay_log = slave-relay-bin

■ slave 服务重启

参见前文:"mysql二进制安装包部署"

■ master 查看 binlog 信息

show master status;
执行之后,可获取目前主库 binlog 使用的 File 及 Position 点,类似如下:

  1. +-------------------+----------+--------------+-------------------------------------------------+-------------------+
  2. | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
  3. +-------------------+----------+--------------+-------------------------------------------------+-------------------+
  4. | master-bin.000007 | 157 | | mysql,sys,information_schema,performance_schema | |
  5. +-------------------+----------+--------------+-------------------------------------------------+-------------------+

■ slave 设置复制信息

根据上一步获取到的信息(File 及 Position)配置从库的复制信息,在从库上执行如下命令

  1. CHANGE MASTER TO MASTER_HOST='10.19.238.240',MASTER_PORT=3306,MASTER_USER='repl',MASTER_PASSWORD='passwd',MASTER_LOG_FILE='master-bin.000006',MASTER_LOG_POS=1195;

■ slave 开启复制

start slave;

■■ 常用操作

■ 查看主从复制状态

show slave status \G
主要查看下面两个参数状态,只要都是yes,表示主从通信正常:
Slave_IO_Running=Yes
Slave_SQL_Running=Yes

■ 启动/停止复制

start slave;
stop slave;

■ reset master;

在master上执行,作用:
删除binlog索引文件中列出的所有binlog文件
清空binlog索引文件
创建一个新的binlog文件
清空系统变量gtid_purged和gtid_executed
在MySQL 5.7.5 及后续版本中, RESET MASTER还会会清空 mysql.gtid_executed 数据表

■ reset slave;

在slave上执行,作用:
清除slave 复制时的master binlog的位置
清空master info, relay log info
删除所有的relay log文件,并创建一个新的relay log文件。
重置复制延迟(CHANGE MASTER TO 的 MASTER_DELAY参数指定的)为0

注:
RESET SLAVE 不会改变 gtid_executed or gtid_purged.
RESET SLAVE 不会改变复制连接使用的参数,例如 master host, master port, master user, or master password
如果要重置这些连接参数,需要使用命令:
RESET SLAVE ALL
重置操作之后,就需要使用 CHANGE MASTER TO 重新指定复制连接参数。

■ 注意事项

如果出现同步失败,可以根据提示处理错误,处理完成后,需要刷新同步配置:
先停止同步
stop slave sql_thread;
stop slave;
清理掉之前的配置,防止同步已经同步了的数据
reset slave all;
然后重新连接主库,进行同步。

■ 主从节点的重启步骤

停应用 ->停数据库(先备后主)-> 启数据库(先主后备)-> 启应用

1、关闭从库,在从库操作
a.先查看当前的主从同步状态 show slave status\G; 看是否双yes
b.执行stop slave
c.停止从库服务
d.查看是否还有mysql的进程ps -ef | grep mysql

2、关闭主库,在主库操作
a.停止主库服务
b.查看是否还有mysql的进程ps -ef | grep mysql

3、启动主库,在主库操作
a.启动主库服务
b.查看mysql的进程ps -ef | grep mysql

4、启动从库,在从库操作
a.启动从库服务
b.启动复制start slave;
c.检查同步状态 show slave status\G; 是否双yes
d.查看mysql的进程ps -ef | grep mysql

原文链接:https://www.cnblogs.com/likingzi/p/18298804

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号