一.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!