linux 安装mysql 5.7 实现主从复制

一.MySQL(5.7)安装

tar xf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz  -C /usr/src/
ln -s /usr/src/mysql-5.7.22-linux-glibc2.12-x86_64/ /usr/local/mysql
echo "export PATH=$PATH:/usr/local/mysql/bin/">> /etc/profile
source /etc/profile
echo $PATH

在这里插入图片描述

useradd -M -s /sbin/nologin mysql
mysqld --user=mysql --initialize --datadir=/usr/local/mysql/data

在这里插入图片描述
记住标红地方,那是初始加密后的密码。一会用到。

cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
 /etc/init.d/mysqld start

启动不起来,修改配置文件

vim /etc/my.cnf

删除重新添加如下内容:
###############################################

[client]
port = 3306
socket = /tmp/mysql.sock
 
[mysqld]
server-id = 2
port = 3306
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data

#################################################

 /etc/init.d/mysqld start
mysql -uroot -p"waC-5a<pyftY"
mysql> set password=password('123123');    // 修改密码
exit
mysql -uroot -p123123

2.从机也如此,安装后配置主从复制

注意配置文件中server-id不能相同

Master主机:

`Vim /etc/my.cnf在这里插入代码片
添加一条
#############################################

[mysqld]
server-id = 2
port = 3306
log-bin=/usr/local/mysql/data/bin-log
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data

##############################################

mysql -uroot -p123123
mysql> grant replication slave on *.* to 'repl'@'192.168.9.10' 
-> identified by '123123';
show master status\G;

在这里插入图片描述

Slave从机:

mysql -uroot -p123123
mysql> change master to master_host='192.168.9.9',
    -> master_user='repl',
    -> master_password='123123',
    -> master_log_file='bin-log.000001',
-> master_log_pos=448;

后两行填入内容为master图片中对应内容。
show slave status\G; 查看

在这里插入图片描述
必须是yes才行,如果不是,请关闭防火墙。

二.基于GTID 主从复制
Master主机:

mysql -uroot -p123123
mysql> show variables like "gtid_mode";

在这里插入图片描述

set global gtid_mode=1;
mysql> show variables like "gtid_mode";

在这里插入图片描述

set global gtid_mode=2;
mysql> show variables like "gtid_mode";

在这里插入图片描述

set global gtid_mode=3;

在这里插入图片描述

mysql> show variables like "enforce_gtid_consistency";

在这里插入图片描述

mysql> set global enforce_gtid_consistency=1;
mysql> show variables like "enforce_gtid_consistency";

在这里插入图片描述

set global gtid_mode=3;
show variables like"gtid_mode";

在这里插入图片描述
Slave 从库:

开启gtid,同上

mysql> set  global gtid_mode=1;
Query OK, 0 rows affected (0.01 sec)

mysql> set  global gtid_mode=2;
Query OK, 0 rows affected (0.03 sec)

mysql> set  global enforce_gtid_consistency=on;
Query OK, 0 rows affected (0.00 sec)

mysql> set  global gtid_mode=3;
Query OK, 0 rows affected (0.02 sec)

mysql> show variables like "gtid_mode";

在这里插入图片描述

mysql> change master to master_host='192.168.9.9',
    -> master_user='repl',
    -> master_password='123123',
    -> master_auto_position=1;
Query OK, 0 rows affected, 2 warnings (0.04 sec)

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G;

在这里插入图片描述
在这里插入图片描述
最后进行测试即可。
建库删库都行。

show slave status\G;

在这里插入图片描述
注:重启数据库后gtid_mode会变成off,所以可以修改配置文件/etc/my.cnf 。
在这里插入图片描述

 vim /etc/my.cnf

1 [client]
  2 port = 3306
  3 socket = /tmp/mysql.sock
  4 
  5 [mysqld]
  6 server-id = 2
  7 port = 3306
  8 gtid_mode=ON
  9 enforce_gtid_consistency=ON                                         
 10 log-bin=/usr/local/mysql/data/bin-log
 11 basedir = /usr/local/mysql
 12 datadir = /usr/local/mysql/data

在这里插入图片描述

[root@mastre ~]# /etc/init.d/mysqld restart
Shutting down MySQL............ SUCCESS! 
Starting MySQL. SUCCESS! 

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39109226/article/details/111185277