不停止mysql服务配置主从

不影响主库线上的服务前提下,增加从库,前提是线上的主库配置中已经开启binlog并且指定了server-id。

linux主192.168.0.70
版本Centos6.7 nginx1.10 php5.4.45 mysql5.5.48

windows从192.168.0.71
版本IIS7 mysql5.5.54 php5.6.29

 

master

主库原有配置/etc/my.cnf参数

[mysqld]
log-bin=mysql-bin
server-id = 1
expire_logs_days = 7

1、授权可以读取日志文件的用户

mysql>GRANT REPLICATION SLAVE ON . TO 'zhu'@'192.168.0.71' IDENTIFIED BY '123456';

2、备份需要做主从的库

mysqldump -uroot -proot --routines --single_transaction --master-data=2 --databases whsir > whsir.sql

参数说明:
-u:当前数据库的帐号
-p:当前数据库的密码
–routines:导出存储过程和函数
–single_transaction:导出开始时设置事务隔离状态,并使用一致性快照开始事务。
–master-data:默认等于1,将dump起始(change master to)binlog和pos值写到结果中,等于2是将change master to写到结果中并注释。

3、把备份好的库拷贝到从库,我这里因为演示平台不同,不能直接scp,所以我就down到本地稍后在上传。

4、在whsir库中创建表,用来模拟新增数据,此时已经备份好了whsir.sql,所以这个表在whsir.sql中是没有的(此时还没有导入whsir.sql到从库)

mysql>use whsir;
mysql>create table wh_tb(id int,name varchar(30));

5、查看备份文件whsir.sql的binlog和pos值,记录下来

head -25 whsir.sql

 

slave windows

1、修改my.ini 原来配置文件中有的话就不用在添加了

[mysqld]
server-id = 2
replicate-wild-do-table=whsir.% #指定复制的库和表,此处%表示通配所有

2、配置好my.ini后重启mysql

net stop mysql
net start mysql

3、创建whsir库

mysql>CREATE DATABASE whsir;

4、将之前备份好的whsir.sql放在windows mysql下的bin目录中,导入数据

mysql -uroot -proot whsir < whsir.sql

5、mysql>SLAVE STOP; #停止slave同步,也可以mysql>STOP SLAVE;没有区别

mysql->CHANGE MASTER TO
->MASTER_HOST='192.168.0.70',
->MASTER_USER='zhu',
->MASTER_PASSWORD='123456',
->MASTER_PORT=3306,
->MASTER_LOG_FILE='mysql-bin.000007',
->MASTER_LOG_POS=1473,
->MASTER_CONNECT_RETRY=10;

如果报错就mysql>reset slave; 然后在重新执行遍

MASTER_PORT是主服务器端口,默认就是3306。

MASTER_CONNECT_RETRY是连接失败后等待的秒数。

注意上面是分开写的,你也可以写在一行里。

上述操作原理其实是把用户的信息写入到了从库的data/master.info中了

mysql>SLAVE START; #开启slave同步
mysql>SHOW SLAVE STATUSG #G就是结束,再加一个";" 就多余了,如果加上;会报错

6、至此我们可以看到IO线程和SQL线程均为Yes,表示主从配置成功。

7、在从库中查看下我们之前创建的那张表,此时已经同步过来了。

mysql>use whsir;
mysql>show tables;

可以参考之前我写的那篇文章,在windows和centos做mysql主从搭建方法https://blog.whsir.com/post-573.html

时间: 2024-07-28 17:47:08

不停止mysql服务配置主从的相关文章

通过两种方式增加从库——不停止mysql服务_Mysql

一般在线增加从库有两种方式,一种是通过mysqldump备份主库,恢复到从库,mysqldump是逻辑备份,数据量大时,备份速度会很慢,锁表的时间也会很长.另一种是通过xtrabackup工具备份主库,恢复到从库,xtrabackup是物理备份,备份速度快,不锁表.为什么不锁表?因为自身会监控主库日志,如果有更新的数据,就会先写到一个文件中,然后再回归到备份文件中,从而保持数据一致性. 现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库.前提是不能影响线上业务使用,

不停止MySQL服务增加从库的两种方式

 现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库.前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作.  一般在线增加从库有两种方式,一种是通过mysqldump备份主库,恢复到从库,mysqldump是逻辑备份,数据量大时,备份速度会很慢,锁表的时间也会很长.另一种是通过xtrabackup工具备份主库,恢复到从库,xtrabackup是物理备份,备份速度快,不锁表.为什么不锁表?因为自身会监控主

不停止 MySQL 服务增加从库的两种方式

现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库.前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作.  一般在线增加从库有两种方式,一种是通过mysqldump备份主库,恢复到从库,mysqldump是逻辑备份,数据量大时,备份速度会很慢,锁表的时间也会很长.另一种是通过xtrabackup工具备份主库,恢复到从库,xtrabackup是物理备份,备份速度快,不锁表.为什么不锁表?因为自身会监控主库

停止MySQL服务hang的问题简单分析(一)

写第一篇,意味着还有第二篇的内容,这个也是自己今天偶然发现的问题.同事之前碰到了一个MySQL服务不断重启的问题,究其原因,其实倒还合理,今天的这个问题比较纠结,看起来好像没有直接的联系,问题算是比较诡异. 我简单复现下这个问题,我在5.7.19的版本中做了测试,可以复现. 首先搭建一主两从的测试环境,使用sandbox或者是我自己写的shell版本也可以,具体可以参考:https://github.com/jeanron100/mysql_slaves 我配置的环境如下,端口分别为10010和

apache+php+mysql安装配置方法小结_php技巧

整个安装流程如下: 1,首先安装apache:我安装的版本是: httpd-2.2.16-win32-x86-openssl-0.9.8o.msi 网址:http://www.apache.org/dist/httpd/binaries/win32/ apache安装和配置比较顺利,没什么好说的. 更改文件路径的方法: 在文件的安装目录下,我的是:D:\Program Files\Apache Software Foundation\Apache2.2\conf,打开httpd.conf搜索:D

无法启动mysql服务问题解决办法汇总

在本地计算机无法启动MYSQL服务错误1067进程意外终止 这种情况一般是my.ini文件配置出错了 首先找到这个文件: 默认安装路径  代码如下 复制代码 C:/Program Files/MySQL/MySQL Server 5.1/my.ini   打开此文件找到:default-storage-engine=INNODB   大概在84行. 将default-storage-engine的值改为:MYISAM,这个时候,MYSQL服务可以启动. 但是还有问题:因为以前你创建的那些数据库还

mysql服务1067错误多种解决方案

my.ini在MySQL的目录,于是在同事机器上拷贝了一个my.ini拿来修改,并单独放在一个地方作为备份.其内容如下:    代码如下 复制代码 #Uncomment or Add only the keys that you know how works. #Read the MySQL Manual for instructions   [mysqld] basedir=d:/MySQL5.0/ #bind-address=127.0.0.1 datadir=d:/MySQL5.0/dat

mysql服务1067错误多种解决方案分享_Mysql

my.ini在MySQL的目录,于是在同事机器上拷贝了一个my.ini拿来修改,并单独放在一个地方作为备份.其内容如下: 复制代码 代码如下: #Uncomment or Add only the keys that you know how works. #Read the MySQL Manual for instructions [mysqld] basedir=d:/MySQL5.0/ #bind-address=127.0.0.1 datadir=d:/MySQL5.0/data #l

Mysql replication 配置

MySQL 设定写入 Master 后, 自动 Replication 到 Slave 去, 运作基本原理是: INSERT/UPDATE/DELETE 语法, 自动写入 Master 的 binlog file. 由 GRANT REPLICATION 授权的账号, 自动将 SQL 语法 repl 到 Slave 的 DB 执行. 因而完成 Replication 的动作. ============================================================