mysql主从复制原理面试,mysql主从复制延迟解决
在*上授予复制从属服务器。*到由“123”标识的“root”@“10 . 10 . 243 . 179”;
在*上授予复制从属服务器。*到由“123”标识的“根”@“%”;
主从MySQL复制配置-orochihuang-博客公园
主从复制配置Mysql主从复制至少需要两个Mysql服务。当然,MySQL服务可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。
(1)首先,确保主服务器和从服务器上的Mysql版本相同。
(2)在主服务器上,建立一个从数据库的帐户,并使用复制从授予权限,例如:
*上的mysql授权复制从属服务器。*至 slave001@192.168.0.99 由
123456;
查询正常,0行受影响(0.13秒)
(3)修改主数据库的配置文件my.cnf,打开BINLOG,设置server-id的值。修改后,必须重启Mysql服务。
[mysqld]
log-bin=/home/MySQL/log/MySQL-bin . log
服务器id=1
(4)之后就可以得到主服务器当前的二进制日志名和偏移量了。此操作的目的是在从数据库启动后从此点恢复数据。
mysql显示主状态 G;
*************************** 1.第*************************行
文件:mysql-bin.000003
位置:243
Binlog_Do_DB:
Binlog_Ignore_DB:
集合中的1行(0.00秒)
(5)好了,现在可以停止主数据的更新操作,生成主数据库的备份。我们可以通过mysqldump向从数据库发送数据。当然,您也可以使用cp命令直接将数据文件复制到从属数据库。
在导出数据之前,注意主数据库上的读锁,以确保数据的一致性。
带读锁的mysql刷新表;
查询正常,0行受影响(0.19秒)
然后是mysqldump。
mysqldump-h 127 . 0 . 0 . 1-p 3306-u root-p test/home/chenyz/test . SQL
最好在主数据库备份完成后恢复写操作。
mysql解锁表;
查询正常,0行受影响(0.28秒)
(6)将主数据备份的test.sql复制到从数据库并导入。
(7)然后修改从数据库的my.cnf,添加server-id参数,指定用于复制的用户,主数据库服务器的ip和端口,以及复制日志开始的文件和位置。
[mysqld]
服务器id=2
log _ bin=/var/log/MySQL/MySQL-bin . log
主主机=192.168.1.100
主用户=测试
主通行证=123456
主端口=3306
主连接重试=60
replicate-do-db=测试
(8)在从属服务器上,启动从属进程
mysql启动从机;
(9)验证从服务器中的显示从状态
mysql显示从属状态G
*************************** 1.第*************************行
Slave_IO_State:等待主机发送事件
主主机:本地主机
主用户:超级用户
主端口:3306
连接重试:3
主日志文件:mysql-bin.003
Read_Master_Log_Pos: 79
relay _ Log _ File:gbichot-relay-bin . 003
中继日志位置:548
中继_主控_日志_文件:mysql-bin .003
Slave_IO_Running:是
Slave_SQL_Running:是
(10)好了,现在我们可以在我们的主服务器上做一些更新操作,然后检查它在从服务器上是否已经更新。
Mysql主从复制(超级简单)-系统网络运维-51CTO技术博客
主从mysql复制(超级简单)
2012-02-27 15:31:02
标签:数据库mysql主从休闲从
原创作品允许转载。转载时请以超链接的形式注明原出处、作者信息及本声明。否则将追究法律责任。http://369369.blog.51cto.com/319630/790921
Mysql主从复制
(超级简单)
如何安装mysql数据库?这里就不说了,只说它的主从复制。步骤如下:
1.主服务器和从服务器分别执行以下操作:
1.1.版本一致。
1.2.初始化表并在后台启动mysql。
1.3.更改root用户的密码。
2.修改主服务器master:
#vi /etc/my.cnf
[mysqld]
Log-bin=mysql-bin //[ Must]启用二进制日志记录
Server-ID=222 //[必选]服务器的唯一ID,默认为1,一般取IP的最后一段。
3.修改从属服务器从属服务器:
#vi /etc/my.cnf
[mysqld]
Log-bin=mysql-bin //[ Must]启用二进制日志记录
Server-ID=226 //[必选]服务器的唯一ID,默认为1,一般取IP的最后一段。
4.重启两台服务器的mysql。
/etc/init.d/mysql重新启动
5.在主服务器上设置帐户并授权从属服务器:
#/usr/local/MySQL/bin/MySQL-u root-PMT Tang
*上的mysql授权复制从属服务器。*到由“q123456”标识的“my sync”@“%”;//一般不使用root帐号。“%”表示所有客户端都可以连接。只要账号和密码正确,这里就可以使用特定的客户端IP,比如192.168.145.226,加强安全性。
6.登录主服务器的mysql,查询master的状态。
mysql显示主状态;
- - - -
文件位置 Binlog _ Do _ DB Binlog _ Ignore _ DB
- - - -
mysql-bin.000004 308
- - - -
集合中的1行(0.00秒)
注意:在此步骤之后,不要操作主服务器MYSQL,以免主服务器的状态值发生变化
7.配置从属服务器从属服务器:
mysql把master改成aster_host=192.168.145.222 ,master_user=tb ,master_password=q123456 ,
master_log_file=mysql-bin。000004 ,master _ log _ pos=308//注意不要断开,“308”没有单引号。
Mysql启动从机;//从服务器启动复制功能
8.从服务器检查复制功能的状态:
mysql显示从属状态G
*************************** 1.第*************************行
Slave_IO_State:等待主机发送事件
Master_Host: 192.168.2.222 //主服务器地址
master _ User:my ync//授权帐户名,尽量避免使用root。
Master_Port: 3306 //数据库端口,部分版本没有这行。
连接重试次数:60
主日志文件:mysql-bin.000004
Read_Master_Log_Pos: 600 //#同步读取二进制日志的位置,大于等于=Exec_Master_Log_Pos。
中继日志文件:ddte-relay-bin.000003
中继日志位置:251
中继_主控_日志_文件:mysql-bin.000004
Slave_IO_Running: Yes //该状态必须为Yes
Slave_SQL_Running: Yes //此状态必须为Yes
.
注意:Slave_IO和Slave_SQL进程必须正常运行,即处于YES状态;否则,它们都处于错误的状态(例如,其中一个“否”就是错误)。
在上面的操作过程中,主从服务器配置完成。
9.主从服务器测试:
主服务器Mysql,建立一个数据库,通过创建一个表将一条数据插入数据库:
mysql创建数据库hi _ db
查询正常,1行受影响(0.00秒)
mysql使用hi _ db
数据库已更改
mysql创建表hi_tb(id int(3),name char(10));
查询正常,0行受影响(0.00秒)
mysql插入到hi_tb值(001, bobu );
查询正常,1行受影响(0.00秒)
mysql显示数据库;
-
数据库
-
信息模式
hi_db
mysql
测试
-
集合中有4行(0.00秒)
来自服务器Mysql的查询:
mysql显示数据库;
-
数据库
-
信息模式
hi _ db //我来了,你看?
mysql
测试
-
集合中有4行(0.00秒)
mysql使用hi_db
数据库已更改
mysql select * from hi _ tb//可以在主服务器上看到新添加的具体数据。
- -
id 姓名
- -
1 波布
- -
集合中的1行(0.00秒)
10.完成:
写一个shell脚本,用nagios监控slave的两个“是”。如果只找到一个或零个“是”,说明主从有问题。发送短信报警。
本文来自“系统网络运维”博客,请将此来源保留在http://369369.blog.51cto.com/319630/790921.