Centos 7 部署LNMP 搭建mysql 主从

创建的账号密码一定要记住

原文地址:https://cloud.tencent.com/developer/news/303638
前提:为了方便搭建,我直接使用了lnmp搭建环境,mysql版本使用5.6版本,数据库为test(在主服务器上创建数据库后备份拉到从服务器)
部署LNMP ( 安装详情请见:https://lnmp.org/install.html);
二台虚拟机 一台为主服务器,另一台为从服务器

主服务器:192.168.175.130

从服务器:192.168.175.131

(ip根据自己虚拟机情况定,centos7查看ip命令行:ip addr)

下面正式开始搭建

主服务器搭建:

第一步:

首先找到mysql的配置文件my.cnf,找不到可以使用命令find / -name my.cnf 查到文件位置
正常情况是在 /etc/my.cnf 位置

第二步:

在 my.cnf 中进行添加配置

#========================主配置==============================

server-id=11
log-bin=mysql-bin #binlog日志
binlog-do-db = bcc #这个是你要同步的数据库
binlog-ignore-db = mysql
binlog_format=row #binlog日志三种模式statement语句模式,row行模式,mixed混合模式
log-slave-updates=true #slave更新是否记入日志
sync-master-info=1 #同步主库信息
slave-parallel-workers=4 #开启基于库的多线程复制.默认是0,不开启,最大并发数为1024个线程

#以下是对二进制日志一些设置

binlog_cache_size = 4M

#max_binlog_size = 1G
#max_binlog_cache_size = 2G
#启用这个参数,可用于在二进制日志记录事件相关的信息,可降低故障排除的复杂度
#只对row binlog格式有效.启用后,会向binlog中写入更多的调试信息,比如sql语句自身都会被写进去. mysqlbinlog -vv 可以看到.

binlog-rows-query-log_events=1

#这两个是启用relaylog的自动修复功能,避免由于网络之类的外因造成日志损坏,主从停止.

relay_log_purge = 1
relay_log_recovery = 1

#==========================================================

注:配置写在 [mysqld] 这里面

Jsky博客

第三步:

进入mysql端,命令行:mysql -u root -p
Jsky博客

第四步:

创建同步数据的账号,命令行:grant replication slave on . to ‘test’@’%’ identified by ‘123456’;
注: test 代表的是账号 123456 代表的是密码 % 代表的是所有ip可以访问
Jsky博客

第五步:

使用命令行查看数据库信息: show master status;
Jsky博客

注:这里需要保存,在配置从库的时候需要进行配置

主服务器搭建:

第一步:

从服务器第一步和主服务器第一步可以说是类似的,也是找出my.cnf文件
(查找文件请看主服务器第一步)

第二步:

打开my.cnf文件,找到 server-id=11 把 11 改成 22 然后修改其他的配置

#============================主从配置:从配置=============================

server-id = 22
log-bin=mysql-bin #binlog日志

# 以下是对二进制日志一些设置

binlog_cache_size = 4M

#max_binlog_size = 1G
#max_binlog_cache_size = 2G
# 启用这个参数,可用于在二进制日志记录事件相关的信息,可降低故障排除的复杂度
# 只对row binlog格式有效.启用后,会向binlog中写入更多的调试信息,比如sql语句自身都会被写进去. mysqlbinlog -vv 可以看到.

binlog-rows-query-log_events=1

# 这两个是启用relaylog的自动修复功能,避免由于网络之类的外因造成日志损坏,主从停止.

relay_log_purge = 1
relay_log_recovery = 1

expire_logs_days = 10
early-plugin-load = “”

#======================================================================

Jsky博客

第三步:

进入mysql端和主服务器一样,详情见主服务器第三步

第四步:

关键性一步来了

停掉 slave ,命令行:stop slave;
Jsky博客

再输入命令行:
change master to
-> master_host=’192.168.175.130’,
-> master_port=3306,
-> master_user=’test’,
-> master_password=’123456’,
-> master_log_file=’mysql-bin.000011’,
-> master_log_pos=630;

master_host 主服务器IP地址
master_port 主服务器端口
master_user 主服务添加的用户名(详见主服务器搭建第四步用户名)master_password 主服务添加的密码(详见主服务器搭建第四步密码)
master_log_file 主服务器的File字段 (主服务器搭建第五步)
master_log_pos主服务器的Position字段 (主服务器搭建第五步)
执行命令就可以了

最后一步:

重启slave:命令行:start slave;
执行 show slave status;查看是否成功
Jsky博客

执行 show slave status\G;

Jsky博客

如果你的这二个参数也会yes的话证明你配置成功了

注意:当配置成功后不要重启主服务器数据库,如果实在要重启的话,就要重新配置从服务器,因为重启数据库后File和Position也会改变注意:当配置成功后不要重启主服务器数据库,如果实在要重启的话,就要重新配置从服务器,因为重启数据库后File和Position也会改变

如果 Slave_IO_Running 不是yes的话,首先ping一下服务器之间是否相通,不通的话配置通后重启就可以了。如果你的虚拟机是克隆的话就要修改auto.cnf,主要把auto.cnf这个文件删除掉,再重启就可以了。


Jsky博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论