0

0

mysql主从复制全面解析及应用演练

php中文网

php中文网

发布时间:2016-06-07 17:39:13

|

974人浏览过

|

来源于php中文网

原创

Mysql复制Mysql内建的复制功能是构建大型、高性能应用程序的基


主服务器:

[root@node1~]# ssh-keygen -t rsa -P '' [root@node1~]##ssh-copy-id -i .ssh/id_rsa.pub root@172.16.18.9

从服务器:

[root@node2~]# ssh-keygen -t rsa -P '' [root@node2~]##ssh-copy-id -i .ssh/id_rsa.pub root@172.16.18.7

2、编辑主从服务器的hosts文件:

[root@node1~]# vim /etc/hosts #####添加如下两项:############### 172.16.18.7node1.magedu.com node1 172.16.18.9node2.magedu.com node2 #####保存并复制至node2上:######## [root@node1~]# scp /etc/hosts 172.16.18.9:/etc

这里不在详细介绍了,请参考

(1)、创建用户 #groupadd -g 306 mysql #useradd -g mysql -u 306 -r mysql (2)、创建数据目录: #mkdir/mydata/data –pv (3)、更改数据目录权限: #chown -R mysql.mysql /mydata/data (4)、解压Mysql创建链接 #tar xfmysql-5.5.33-linux2.6-x86_64.tar.gz -C /usr/local #ln -svmysql-5.5.33-linux2.6-x86_64 mysql (5)、更改属主属组 #cd mysql #chown -R root:mysql./* (6)、初始化mysql #scripts/mysql_install_db--user=mysql --datadir=/mydata/data (7)、创建启动脚本并赋予权限 #cpsupport-files/mysql.server /etc/rc.d/init.d/mysqld #chmod +x/etc/rc.d/init.d/mysqld (8)、创建并修改配置文件 # cp support-files/my-large.cnf /etc/my.cnf # vim /etc/my.cnf 添加如下行指定mysql数据文件的存放位置: datadir = /mydata/data (9)、更改环境变量 #vim/etc/profile.d/mysql.sh 添加: exportPATH=/usr/local/mysql/bin:$PATH #./etc/profile.d/mysql.sh (10)、添加到服务列表中并启动mysql # chkconfig --addmysqld # service mysql start

5、配置主服务器:

(1)编辑配置文件:

[root@node1 ~]# vim /etc/my.cnf server-id = 1 #60行标识自己的ID号 log-bin=mysql-bin #52行二进制日志,默认是启动的 binlog_format=mixed #55行使用混合模式

(2)建立复制账号权限:

[root@node1 ~]# mysql mysql>GRANT REPLICATIONCLIENT,REPLICATION SLAVE ON *.* TO rpuser@'172.16.%.%' IDENTIFIED BY 'rpuser'; mysql> FLUSHPRIVILEGES; #刷新权限

6、配置从服务器:

(1)编辑配置文件:

[root@node2 ~]# vim /etc/my.cnf server-id = 20 #60行标识自己的ID号,和主服务器决不能相同 #log-bin=mysql-bin #52行关闭二进制日志 #binlog_format=mixed #55行关闭使用混合模式 #####设置从服务器为只读模式###### read-only=1 #注意从服务器不可有写模式 #####添加中继日志################ relay-log=/mydata/data/relay-mysql #中继日志 relay-log-index=relay-mysql.index #中继日志索引文件

【relay-log日志记录的是在复制过程中,从服务器I/O线程将主服务器的二进制日志读取过来记录到从服务器本地文件,然后SQL线程会读取relay-log日志的内容并应用到从服务器。】

PHP5学习对象教程
PHP5学习对象教程

PHP5学习对象教程由美国人古曼兹、贝肯、瑞桑斯编著,简张桂翻译,电子工业出版社于2007年12月1日出版的关于PHP5应用程序的技术类图书。该书全面介绍了PHP 5中的新功能、编程方法及设计模式,还分析阐述了PHP 5中新的数据库连接处理、错误处理和XML处理等机制,帮助读者系统了解、熟练掌握和高效应用PHP。

下载

(2)、登录mysql查看线程:

查看启动线程

mysql> SHOWPROCESSLIST; +----+------+-----------+------+---------+------+-------+------------------+ | Id | User |Host | db | Command | Time | State | Info | +----+------+-----------+------+---------+------+-------+------------------+ | 1 | root | localhost | NULL | Query | 0| NULL | SHOW PROCESSLIST | +----+------+-----------+------+---------+------+-------+------------------+

根据结果显示:此时还未启动任何线程。

(3)、配置连接服务器:

命令参数解析:

mysql>helpCHANGE MASTER TO MASTER_BIND = 'interface_name' #将控制绑定在那个接口上 | MASTER_HOST = 'host_name' #主服务器地址 | MASTER_USER = 'user_name' #主服务器用户(刚才创建的) | MASTER_PASSWORD = 'password' #主服务器密码 | MASTER_PORT = port_num #工作端口 | MASTER_CONNECT_RETRY = interval #重试时间 | MASTER_HEARTBEAT_PERIOD = interval #每隔多长时间探测一下是否落后主服务器,主服务器是否在线 | MASTER_LOG_FILE = 'master_log_name' #指定从哪一个二进制文件复制 | MASTER_LOG_POS = master_log_pos #指定哪一个二进制文件的事件位置 | RELAY_LOG_FILE = 'relay_log_name' #中继日志 | RELAY_LOG_POS = relay_log_pos | MASTER_SSL = {0|1} #是否使用SSL功能 | MASTER_SSL_CA = 'ca_file_name' | MASTER_SSL_CAPATH = 'ca_directory_name' | MASTER_SSL_CERT = 'cert_file_name' | MASTER_SSL_KEY = 'key_file_name' | MASTER_SSL_CIPHER = 'cipher_list' | MASTER_SSL_VERIFY_SERVER_CERT = {0|1} | IGNORE_SERVER_IDS = (server_id_list) #将某些ID号忽略掉

配置从服务器连接主服务器:

mysql> CHANGEMASTER TO MASTER_HOST='172.16.18.7', -> MASTER_USER='rpuser', -> MASTER_PASSWORD='rpuser';

(4)启动从服务器线程:

mysql> START SLAVE;

(5)查看从服务器工作状态

mysql> SHOWSLAVE STATUS\G ***************************1. row *************************** Slave_IO_State: Waiting formaster to send event #I/O状态;接受主服务器发送状态 Master_Host: 172.16.18.7 #主服务器用户账号 Master_User: rpuser #用户 Master_Port: 3306 #默认监听端口 Connect_Retry: 60 #重试时间间隔 Master_Log_File: mysql-bin.000002 #读取的二进制日志文件 Read_Master_Log_Pos: 107 #事件位置 Relay_Log_File:relay-mysql.000003 #当前读取的中继日志文件 Relay_Log_Pos: 253 Relay_Master_Log_File: mysql-bin.000002 Slave_IO_Running: Yes #I/O线程已启动 Slave_SQL_Running: Yes #SQL线程已启动 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: 107 Relay_Log_Space: 966 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: 1

7、测试

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

65

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

43

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

35

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

41

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

204

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

9

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

8

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.6万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 779人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号