本文使用 Sharding-JDBC 实现读写分离,基于 CentOS 7 + MySQL 5.7
一、MySQL 安装及配置
1.1 安装
依次执行命令:
1 | sudo wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm |
启动:
1 | sudo systemctl start mysqld |
1.2 修改密码
查看默认密码:
1 | grep "password" /var/log/mysqld.log |
进入数据库:
1 | mysql -uroot -p |
修改密码:
1 | alter user 'root'@'localhost' identified by 'NEW PASSWORD'; |
远程访问:
1 | use mysql; |
1.3 主从配置
本文一主 (192.168.30.101) 两从 (192.168.30.102, 192.168.30.103)
1.3.1 主库
1 | sudo vim /etc/my.cnf |
1 | # server-id 给数据库服务的唯一标识 |
重启数据库,执行 SQL:
1 | grant replication slave on *.* to 'root'@'192.168.30.102' identified by 'YOUR PASSWORD'; |
重启数据库,执行 SQL:
1 | show master status; |
记录下 File 和 Position
1.3.2 从库配置
以 192.168.30.102 为例:
1 | log-bin=mysql-bin |
重启数据库,执行 SQL:
1 | stop slave; |
其中 master_log_file 和 master_log_pos 分别为上步记录主库的 File 和 Position
二、使用
2.1 pom.xml
1 | <dependency> |
2.2. application.yml
1 | spring: |
完整代码:GitHub
参考: