Spring Boot2.0.3 Mybatis Sharding-jdbc3.X集成实现数据库的读写分离(一)MySql的主从配置

Mysql的安装

这个网上一大堆的教程,我这里安装的mysql5.7。这里就不细说了,直接贴相应的命令

wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum localinstall mysql57-community-release-el7-11.noarch.rpm

查看是否安装成功

yum repolist enabled | grep "mysql.*-community.*"

安装

yum install mysql-community-server	

启动系统维护

systemctl enable mysqld
systemctl daemon-reload

启动msql

systemctl start mysqld

查询root的密码

grep 'temporary password' /var/log/mysqld.log 

进入mysql

mysql -u root -p

输入查询到的密码,进入mysql,修改root密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'asadsad'; 

以下是默认配置文件的路径: 
配置文件:/etc/my.cnf 
日志文件:/var/log//var/log/mysqld.log 
服务启动脚本:/usr/lib/systemd/system/mysqld.service 
socket文件:/var/run/mysqld/mysqld.pid

在另外一台虚机上使用同样的步骤安装mysql。

Mysql主从配置

设置2台机器的为master,slave。在master上为主,slave为从

进入master上mysql,传一个账号,只允许特定的IP进行登录,如下:

CREATE USER 'daxianRepl'@'172.17.4.%' IDENTIFIED BY '按上述所所';
GRANT REPLICATION SLAVE ON *.* TO 'daxianRepl'@'172.17.4.%';

修改my.cnf

log-bin=mysql-bin
server-id=1
binlog-do-db=db0
binlog-do-db=db1
innodb_flush_log_at_trx_commit=1
sync_binlog=1

重启mysql

systemctl start mysqld

登录主库使用命令

 show master status;

Spring Boot2.0.3 Mybatis Sharding-jdbc3.X集成实现数据库的读写分离(一)MySql的主从配置

记住File,和Position的值。

登录Slave机器,登录Mysql

stop slave;
CHANGE MASTER TO MASTER_HOST='172.17.4.178', MASTER_USER='daxianRepl', MASTER_PASSWORD='zhudaxian;.,68NB', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;
start slave;

修改my.cnf

server-id=2
#可以指定要复制的库
replicate-do-db = db0 #在master端不指定binlog-do-db,在slave端用replication-do-db来过滤
replicate-do-db = db1 #在master端不指定binlog-do-db,在slave端用replication-do-db来过滤
replicate-ignore-db = mysql #忽略的库
relay-log=/var/lib/mysql/relay_98_3326

重启mysql

systemctl start mysqld

使用命令查看

show slave status \G

Spring Boot2.0.3 Mybatis Sharding-jdbc3.X集成实现数据库的读写分离(一)MySql的主从配置

出现上面的情况,主从配置成功