当前位置:Gxlcms > mysql > mysql主从同步设置

mysql主从同步设置

时间:2021-07-01 10:21:17 帮助过:12人阅读

前提,两台安装了同样版本mysql的服务器(其实好像版本不一样也行,但是稳妥起见,还是用一样版本的mysql吧,毕竟俺是个小白)。 主服务器ip:192.168.2.19从服务器ip:192.168.2.155 停止前端nginx服务,既停止php向mysql发起请求 一.给主服务器上创建一个

前提,两台安装了同样版本mysql的服务器(其实好像版本不一样也行,但是稳妥起见,还是用一样版本的mysql吧,毕竟俺是个小白)。

主服务器ip:192.168.2.19 从服务器ip:192.168.2.155

停止前端nginx服务,既停止php向mysql发起请求

一.给主服务器上创建一个用户用于给从服务器同步使用:


grant all privileges on *.* to slaveuser@丛库IP identified by '密码';



二.停止这两台服务器上的mysql服务:


/usr/local/mysql/bin/mysqladmin shutdown --socket=/opt/db/mysql/mysql.sock -uroot -ppassword



三.修改主服务器的配置文件

server-id = 1 #主机标示,整数
log_bin = /opt/db/mysql/data/mysql-bin.log #确保此文件可写
read-only = 0 #主机,读写都可以
binlog-do-db = test #需要备份数据,多个写多行
binlog-do-db = anotherdb #需要备份数据,多个写多行



四.在从服务器上拉取主服务器中的要同步的库的表结构和数据(需要输入主服务器的root密码)

scp -r -p root@192.168.2.19:/opt/db/mysql/data/fb_cn /opt/db/mysql/data/

并且改变/opt/db/mysql/data/中fb_cn的用户和用户组



五.启动主服务器mysql服务(根据自己具体情况启动)


/usr/local/mysql/bin/mysqld_safe

--defaults-file=/opt/db/mysql/my.cnf #mysql配置文件位置

--basedir=/usr/local/mysql #mysql安装目录

--pid-file=/opt/db/mysql/mysql.pid #pid文件创建位置

--datadir=/opt/db/mysql/data #数据文件位置

--socket=/opt/db/mysql/mysql.sock #sock文件位置

--log-error=/opt/db/mysql/err.log #错误日志文件位置

--log-slow-queries=/opt/db/mysql/slowquery.log& #慢查询日志文件位置




六.查看主服务器mysql状态,记录file和position,很重要,在从库设置中将被用到,此时需保证主服务器mysql不会有写操作


/usr/local/mysql/bin/mysql -uroot --socket=/opt/db/mysql/mysql.sock -p (进入mysql环境)

>show master status;

+——————+———-+————–+——————+

|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|

+——————+———-+————–+——————+

|mysql-bin.000001|106| myslave | mysql

|+——————+———-+————–+——————+



七.修改从服务器的配置文件


server-id = 2 #主机标示,整数

log_bin = /opt/db/mysql/data/mysql-bin.log #binlog

master-host = 192.168.2.19 #主服务器ip地址
master-user = slaveuser #主服务器用于主从设置的用户

master-pass = 密码 #主服务器用于主从设置的用户密码

master-port = 3306 #主服务器端口号
master-connect-retry = 60 #从服务器发现主服务器断掉,重新连接时间(秒)
replicate-do-db = test #要进行主从同步的库名,用逗号隔开

replicate-do-db = another #要进行主从同步的库名,用逗号隔开



八.启动从服务器(根据自己具体情况启动)


/usr/local/mysql/bin/mysqld_safe

--defaults-file=/opt/db/mysql/my.cnf #mysql配置文件位置

--basedir=/usr/local/mysql #mysql安装目录

--pid-file=/opt/db/mysql/mysql.pid #pid文件创建位置

--datadir=/opt/db/mysql/data #数据文件位置

--socket=/opt/db/mysql/mysql.sock #sock文件位置

--log-error=/opt/db/mysql/err.log #错误日志文件位置

--log-slow-queries=/opt/db/mysql/slowquery.log& #慢查询日志文件位置


九.进入从服务器mysql环境中,配置Slave信息


/usr/local/mysql/bin/mysql -uroot --socket=/opt/db/mysql/mysql.sock -p

>CHANGE MASTER TO

>MASTER_HOST='192.168.2.19', #主服务器ip

>MASTER_PORT=3306, #主服务器mysql服务端口

>MASTER_USER='slaveuser', #主服务器中用于主从连接的用户名

>MASTER_PASSWORD='密码', #主服务器中用于主从连接的用户密码

>MASTER_LOG_FILE='mysql-bin.000001', #从主服务器的master状态中读取的file

>MASTER_LOG_POS=106; #从主服务器的master状态中读取的position




十.启动Slave服务

>start slave;




十一.查看从服务器状态

>show slave status\G;

如果发现

Waitingfor master to send event

Slave_IO_Running:Yes

Slave_SQL_Running:Yes


总体来说,这个配置还是很成功的,但是由于操作问题,在配置过程中,大脑缺弦了,直接把replicate-do-db = another这个考到了从服务器的mysql配置文件里,典型脑残啊,特此纪念一把,多花了一个小时的时间。


人气教程排行