千家信息网

docker怎么搭建读写分离环境

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章主要讲解了"docker怎么搭建读写分离环境",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"docker怎么搭建读写分离环境"吧!# 读写分离#
千家信息网最后更新 2025年01月24日docker怎么搭建读写分离环境

这篇文章主要讲解了"docker怎么搭建读写分离环境",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"docker怎么搭建读写分离环境"吧!

# 读写分离## 本地目录结构/root - /dev  - /mysql-master   - /conf.d    - docker.cnf    - mysql.cnf   - /data  - /mysql-slave0   - /conf.d    - docker.cnf    - mysql.cnf   - /data  ## master 配置文件docker.cnf[mysqld]skip-host-cacheskip-name-resolveserver-id = 1log-bin = master-bindefault-storage-engine=INNODBsymbolic-links=0binlog-ignore-db=mysql## masterdocker run -p 3308:3306 \    -v /root/dev/mysql-master/conf.d/:/etc/mysql/conf.d/ \    -v /root/dev/mysql-master/data:/var/lib/mysql \    -e MYSQL_ROOT_PASSWORD=123456 \    --privileged=true \    --name mysql-master \    -d mysql \    --character-set-server=utf8mb4 \    --collation-server=utf8mb4_unicode_ci ## slave 配置文件[mysqld]skip-host-cacheskip-name-resolveserver-id = 2read-only = 1relay-log = slave-relay-binlog-slave-updates = 1skip-log-binsymbolic-links = 0default-storage-engine=INNODB## slavedocker run -p 3309:3306 \    -v /root/dev/mysql-slave0/conf.d/:/etc/mysql/conf.d/ \    -v /root/dev/mysql-slave0/data:/var/lib/mysql \    -e MYSQL_ROOT_PASSWORD=123456 \    --privileged=true \    --name mysql-slave0 \    --link mysql-master:mysql-master-host \    -d mysql \    --character-set-server=utf8mb4 \    --collation-server=utf8mb4_unicode_ci# master 上create user 'rep1'@'%' identified by 'rep1'GRANT REPLICATION SLAVE ON *.* TO rep1@'%' with grant option;flush privileges;## 查看 file 和 positionshow master status;# slave 上stop slave;change master to master_host='mysql-master-host'    , master_user='rep1'    , master_password='rep1'    , master_log_file='master-bin.000003'    , master_log_pos=156;start slave;show slave status\G发现Slave_IO_Running: YesSlave_SQL_Running: Yes同步正确# 设置写库具有读写权限,读库去写权限只有读权限## 注: root 账号是超级账号,设置只读无效。因此需要开新账号,设置只读步骤如下:## 创建账号CREATE USER 'base_sa'@'%' identified by 'base_sa';## 授权,此时去查看读库,发现账号已经同步成功GRANT ALL PRIVILEGES ON testdatabase.* TO 'base_sa'@'%' WITH GRANT OPTION;## 如何设置读库只读两个办法方法1: docker.cnf 配置文件中设置 read-only = 1方法2: 直接运行 set global read_only = 1;

感谢各位的阅读,以上就是"docker怎么搭建读写分离环境"的内容了,经过本文的学习后,相信大家对docker怎么搭建读写分离环境这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0