0

0

mysql M/S配置小记_MySQL

php中文网

php中文网

发布时间:2016-06-01 13:30:06

|

1136人浏览过

|

来源于php中文网

原创

bitsCN.com

mysql m/s配置小记

 

昨天做了MYSQL 主从服务器同步配置。今天早上起了个大早,到现在还是睡意朦胧。。。

现在写下整个同步过程及需要注意的地方

目前情况:

1.系统版本都是rhel5 mysql版本相同

2.主服务器正在运行,不能停止。

3.主服务器IP为:10.0.0.2

  从服务器IP为:10.0.0.3

4.从服务器MSYQL slave 为停止状态

配置过程:

1、为了安全起见,建同步账号

mysql> GRANT REPLICATION SLAVE ON *.*   

    -> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';

 

 

本例: GRANT REPLICATION SLAVE ON *.* TO  mysqlms@10.0.0.3  IDENTIFIED BY mysqlslave;

2、锁表

mysql > FLUSH TABLES WITH READ LOCK;

 

注意:为了保证FLUSH TABLES语句让读锁定保持有效。(如果退出客户程序,锁被释放)。建立新的SSH连接,然后对主服务器上的数据进行快 

照。 

3、建立快照 

tar -cvf /tmp/mysql-snapshot.tar ./data

 

数据库大怎么办?用mysqldump导出。

本例:tar -cvf /tmp/mysql-snapshot.tar ./data/newnew  --其中的一个数据库,其它的无关紧要。

4、记下file pos值

当FLUSH TABLES WITH READ LOCK所置读锁定有效时,读取主服务器上当前的二进制日志名(file)和偏移量值(pos):

mysql > SHOW MASTER STATUS; 

+---------------+----------+--------------+------------------+ 

| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | 

+---------------+----------+--------------+------------------+ 

| mysql-bin.003 | 73       | test         | manual,mysql     | 

+---------------+----------+--------------+------------------+

File列显示日志名,而Position显示偏移量。在该例子中,二进制日志值为mysql-bin.003,偏移量为73。记录该值。以后设置从服务器时需要

使用这些值。它们表示复制坐标,从服务器应从该点(也可以是任何点)开始从主服务器上进行新的更新。

5、解锁

mysql > UNLOCK TABLES;

这时也可以使用mysql > SHOW MASTER STATUS; 查看pos在不断的变化。

6、配置主从服务器my.cnf 

主 

[mysqld]   

log-bin=mysql-bin   

server-id=1   

 

从   

[mysqld]   

log-bin=mysql-bin   

server-id=2

7、将主服务器快照信息COPY至从服务器,重启从服务器MYSQL,并配置MASTER

# scp /tmp/mysql-snapshot.tar  root@10.0.0.3:/root  

# 在从服务器解压,覆盖data,注意权限 

#从服务器操作 service mysqld restart 

# mysql> CHANGE MASTER TO   

->     MASTER_HOST='master_host_name',   

->     MASTER_USER='replication_user_name',   

->     MASTER_PASSWORD='replication_password',   

->     MASTER_LOG_FILE='recorded_log_file_name',   

->     MASTER_LOG_POS=recorded_log_position;

本例:

# mysql> CHANGE MASTER TO 

->     MASTER_HOST='10.0.0.2', 

->     MASTER_USER='mysqlms', 

->     MASTER_PASSWORD='mysqlslave', 

->     MASTER_LOG_FILE='mysql-bin.003', 

->     MASTER_LOG_POS=73;   

 

----这些信息在主服务器用mysql > SHOW MASTER STATUS;查看得知。

8、验证配置是否正确

登录从服务器输入如下命令:

mysql> show slave status/G

 

会得到类似下面的列表: 

Slave_IO_Running: Yes   

Slave_SQL_Running: Yes

 

9、启动同步

从服务器

mysql> start slave;

 

10、再次验证同步

在主服务器建个表,在从服务器查看是否也有。

 

 

附:

RoboNeo
RoboNeo

专注影像与设计的AI助手

下载

一些错误信息的处理,主从服务器上的命令,及状态信息。

在从服务器上使用show slave status/G

Slave_IO_Running,为No,

则说明IO_THREAD没有启动,请执行start slave io_thread

Slave_SQL_Running为No

则复制出错,查看Last_error字段排除错误后执行start slave sql_thread 

查看Slave_IO_State字段空 //复制没有启动

Connecting to master//没有连接上master

Waiting for master to send event//已经连上

主服务器上的相关命令: 

show master status 

show slave hosts 

show logs 

show binlog events 

purge logs to 'log_name' 

purge logs before 'date' 

reset master(老版本flush master) 

set sql_log_bin=

 

从服务器上的相关命令: 

slave start 

slave stop 

SLAVE STOP IO_THREAD //此线程把master段的日志写到本地 

SLAVE start IO_THREAD 

SLAVE STOP SQL_THREAD //此线程把写到本地的日志应用于数据库 

SLAVE start SQL_THREAD 

reset slave 

SET GLOBAL SQL_SLAVE_SKIP_COUNTER 

load data from master 

show slave status(SUPER,REPLICATION CLIENT) 

CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= //动态改变master信息 

PURGE MASTER [before 'date'] 删除master端已同步过的日志

6.3.1 Master 同步线程状态

以下列出了master的 Binlog Dump 线程 State 字段中最常见的几种状态。如果在master上没有 Binlog Dump 线程,那么同步就没有在运行。

也就是说,没有slave连接上来。

Sending binlog event to slave

事件是由二进制日志构成,一个事件通常由更新语句加上其他信息。线程读取到一个事件并正发送到slave上。

Finished reading one binlog; switching to next binlog

读取完了一个二进制日志,正切换到下一个。

Has sent all binlog to slave; waiting for binlog to be updated

已经读取完全部未完成更新日志,并且全部都发送到slave了。它处于空闲状态,正等待在master上执行新的更新操作以在二进制日志中产生新

的事件,然后读取它们。

Waiting to finalize termination

当前线程停止了,这个时间很短。

 

6.3.2 Slave的I/O线程状态

以下列出了slave的I/O线程 State 字段中最常见的几种状态。从MySQL 4.1.1开始,这个状态在执行 SHOW SLAVE STATUS 语句结果的 

Slave_IO_State 字段也会出现。这意味着可以只执行 SHOW SLAVE STATUS 语句就能了解到更多的信息。

Connecting to master

该线程证尝试连接到master上。

Checking master version

确定连接到master后出现的一个短暂的状态。

Registering slave on master

确定连接到master后出现的一个短暂的状态。

Requesting binlog dump

确定连接到master后出现的一个短暂的状态。该线程向master发送一个请求,告诉它要请求的二进制文件以及开始位置。

Waiting to reconnect after a failed binlog dump request

如果二进制日志转储(binary log dump)请求失败了(由于连接断开),该线程在休眠时进入这个状态,并定期重连。重连的时间间隔由 --

master-connect-retry 选项来指定。

Reconnecting after a failed binlog dump request

该线程正尝试重连到master。

Waiting for master to send event

已经连接到master,正等待它发送二进制日志。如果master闲置时,这个状态可能会持续较长时间,如果它等待超过 slave_read_timeout 秒

,就会发生超时。这时,它就会考虑断开连接,然后尝试重连。

Queueing master event to the relay log

已经读取到一个事件,正把它拷贝到中继日志中以备SQL线程处理。

Waiting to reconnect after a failed master event read

读日志时发生错误(由于连接断开)。该线程在重连之前休眠 master-connect-retry 秒。

Reconnecting after a failed master event read

正尝试重连到master。当连接确定后,状态就变成 Waiting for master to send event。

Waiting for the slave SQL thread to free enough relay log space

relay_log_space_limit 的值非零,中继日志的大小总和超过这个值了。I/O线程等待SQL线程先处理中继日志然后删除它们以释放足够的空间

Waiting for slave mutex on exit

当前线程停止了,这个时间很短。

 

6.3.3 Slave的SQL线程状态

以下列出了slave的SQL线程 State 字段中最常见的几种状态:

Reading event from the relay log

从中继日志里读到一个事件以备执行。

Has read all relay log; waiting for the slave I/O thread to update it

已经处理完中继日志中的全部事件了,正等待I/O线程写入更新的日志。

Waiting for slave mutex on exit

当前线程停止了,这个时间很短。
 

bitsCN.com

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

616

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

194

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

91

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

20

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

54

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

29

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

15

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

598

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

56

2026.02.12

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 11.6万人学习

ASP 教程
ASP 教程

共34课时 | 5.1万人学习

Python 教程
Python 教程

共137课时 | 9.6万人学习

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

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