共计 2711 个字符,预计需要花费 7 分钟才能阅读完成。
这篇文章主要介绍“mysql 主主和主从的搭建方法”,在日常操作中,相信很多人在 mysql 主主和主从的搭建方法问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql 主主和主从的搭建方法”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!
建立 mysql 主主
server1_mysql:192.168.1.108
server2_mysql: 192.168.1.110
拓扑结构:
server1_mysql——-server2_mysql
1. 创建用户并授权
server1:
mysql GRANT REPLICATION SLAVE ON *.* TO
IDENTIFIED BY server2
mysql flush privileges;
server2:
mysql GRANT REPLICATION SLAVE ON *.* TO
IDENTIFIED BY server1
2. 修改 Mysql 的主配置文件 /etc/my.cnf
server1:
log-bin=mysql-bin #必须要开启二进制日志
server-id = 1 #另外一台 id 改成 2
binlog-do-db=test #填写需要同步的
binlog-ignore-db= #填写不需要同步的数据库
replicate-do-db=test #填写需要同步的数据库
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
sync_binlog=1
auto_increment_increment=1 #每次增长 2
auto_increment_offset=1 #设置自动增长的字段的偏移量,即初始值为 2
启动 Mysql 服务:
# service mysqld restart
server2:
log-bin=mysql-bin #必须要开启二进制日志
server-id = 2
binlog-do-db=test #填写需要同步的数据库
binlog-ignore-db=mysql #填写不需要同步的数据库
replicate-do-db=test #填写需要同步的数据库
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
sync_binlog=1
auto_increment_increment=2 #每次增长 2
auto_increment_offset=1 #设置自动增长的字段的偏移量,即初始值为 2
启动 Mysql 服务:
# service mysqld restart
注:二都只有 server-id 不同和 auto-increment- offset 不同
auto-increment-increment 的值应设为整个结构中服务器的总数,本案例用到两
台服务器,所以值设为 2。
3. 重新启动两个服务器
# service mysqld restart
4. 为了让两个数据库一样,我们备份其中一个数据库,然后在另一个数据库上恢
复,这样是两个数据库一开始都是一样的。
在 server1 上操作:
# mysqldump –databases luowei /tmp/luowei.sql
在 server2 上操作:
创建一个与 mydb 同名的空数据库
# mysql
CREATE DATABASE mydb;
\q
# scp 192.168.1.108:/tmp/mydb.sql ?./
# mysql -uroot -p mydb /tmp/luowei.sql
5. 然后两个服务器相互通告二进制日志的位置并启动复制功能:
在 server1 上:
# mysql
CHANGE MASTER TO
MASTER_HOST= 192.168.1.110 ,
MASTER_USER= server2 ,
MASTER_PASSWORD= server2
mysql START SLAVE;
在 server2 上:
# mysql
CHANGE MASTER TO
MASTER_HOST= 192.168.1.108 ,
MASTER_USER= server1 ,
MASTER_PASSWORD= server1
mysql START SLAVE;
6. 查看,并验证:
分别在两个数据库服务器上查看
mysql START SLAVE;
然后查看数据库和表,你会发现内容是一样的,这样就是整个主主 Mysql 的架构
的配置过程。
检查主从同步性
[root@node1 ~]# mysql #进入 mysql 命令行
mysql show master status; #显示 (不同主机结果不同)
+——————+———-+——————-+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+——————-+——————+
| updatelog.000028 | 313361 |db1 | mysql |
+——————+———-+——————-+——————+
(同步之前如果怀疑主从数据不同步可以采取:上面冷备份远程拷贝法或者在从服务器上命行同步方法)
在从服务器执行 MySQL 命令下:
mysql slave stop; #先停止 slave 服务
mysql CHANGE MASTER TO MASTER_LOG_FILE= updatelog.000028 ,MASTER_LOG_POS=313361;
#根据上面主服务器的 show master status 的结果,进行从服务器的二进制数据库记录回归,达到同步的效果
mysql slave start; #启动从服务器同步服务
mysql show slave status\G;
用 show slave status\G; 看一下从服务器的同步情况
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果都是 yes,那代表已经在同步
利用 mysql 的客户端来测试,要比在命令行方便的多。
到此,关于“mysql 主主和主从的搭建方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!