Centos7.4搭建Mysql主从

此文章使用测试环境的参数配置
一、准备环境
操作系统:Centos7.4
Mysql版本:5.7
主:10.1.11.22
从:10.1.11.23
操作步骤:
搭建MySQL服务这里就不描述搭建过程
启动MySQL登录设置root密码

mysql -uroot -p$(awk '/temporary password/{print $NF}' /var/log/mysqld.log)
mysql> alter user root@localhost identified by 'Password';

二、配置my.cnf 文件 只需修改server_id
server-id做什么用的?
1、 mysql的同步的数据中是包含server-id的,用于标识该语句最初是从哪个server写入的,所以server-id一定要有的
2、 每一个同步中的slave在master上都对应一个master线程,该线程就是通过slave的server-id来标识的;每个slave在master端最多有一个master线程,如果两个slave的server-id 相同,则后一个连接成功时,前一个将被踢掉。 这里至少有这么一种考虑:
slave主动连接master之后,如果slave上面执行了slave stop;则连接断开,但是master上对应的线程并没有退出;当slave start之后,master不能再创建一个线程而保留原来的线程,那样同步就可能有问题;
3、 在mysql做主主同步时,多个主需要构成一个环状,但是同步的时候有要保证一条数据不会陷入死循环,这里就是靠server-id来实现的

vi /etc/my.cnf
[mysqld]
basedir=/data/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=22
port=3306
secure-file-priv=/tmp
autocommit=0
log_bin=/data/binlog/mysql-bin
binlog_format=row
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
[mysql]
prompt=db01 [\\d]>

#autocommit=0指事务非自动提交,自此句执行以后,每个SQL语句或者语句块所在的事务都需要显示"commit"才能提交事务
#binlog_format binlog日志格式,mysql默认采用statement,建议使用mixed

三、查看所有节点server_id

[root@Test01 ~]# mysql -uroot -p -e "select @@server_id"
Enter password:
+-------------+
| @@server_id |
+-------------+
| 22          |
+-------------+
[root@Test02 ~]# mysql -uroot -p -e "select @@server_id"
Enter password:
+-------------+
| @@server_id |
+-------------+
| 23          |
+-------------+

四、主服务器创建复制用户

mysql> grant replication slave on *.* to repl@'10.1.11.%' identified by 'Test@101#Qm';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> select user,host from mysql.user;
+---------------+-----------+
| user | host				 |
+---------------+-----------+
| repl 		| 10.1.11.% 	|
| mysql.session | localhost |
| mysql.sys 	| localhost |
| root 			| localhost |
+---------------+-----------+
4 rows in set (0.07 sec)

五、10.1.11.22(主)备份数据库

[root@Test01 ~]#mysqldump -uroot -p -A --master-data=2 --single-transaction -R --triggers > /mnt/all.sql

六、记录 binlog日志及position号

mysql> show master status;
+-------------------------+-----------+
|File					  |Position   |
+-------------------------+-----------+
|mysql-bin.0000003        |		484   |
+-------------------------+-----------+

七、将主库备份的数据导入从库
[root@Test01 ~]#mysql -uroot -p
mysql>source /mnt/all.sql
八、从库执行同步信息

mysql> CHANGE MASTER TO
-> MASTER_HOST='10.1.11.22',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='Test@101#Qm',
-> MASTER_PORT=3306,
-> MASTER_LOG_FILE='mysql-bin.000003',
-> MASTER_LOG_POS=484,
-> MASTER_CONNECT_RETRY=10;
Query OK, 0 rows affected, 2 warnings (0.02 sec)

九、开启主从线程

从库执行
mysql> start slave;
查看从库复制状态
mysql> show slave  status \G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

主从复制配置完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值