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;
记住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
出现上面的情况,主从配置成功