Mac操作系统上使用Docker创建MySQL主从数据库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mac操作系统上使用Docker创建MySQL主从数据库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3578字,纯文字阅读大概需要6分钟。
内容图文
![Mac操作系统上使用Docker创建MySQL主从数据库](/upload/InfoBanner/zyjiaocheng/527/ae77f6c08362411bbaa464905638ddaf.jpg)
拉取MySQL镜像
## 下载最新版本的MySQL镜像
docker pull mysql
创建两个主从MySQL数据库容器
第一步,需要创建一个目录,用来存放与容器中配置文件对应的物理地址
目录结构如下:
master my.cnf配置文件内容如下:
[mysqld]
server_id = 1
log-bin= mysql-bin
read-only=0
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
slave my.cnf配置文件内容如下:
[mysqld]
server_id = 2
log-bin= mysql-bin
read-only=1
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
第二步,创建两个主从镜像,命令如下:
创建主数据库master
docker run --name mysql-master -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=yourpassword -v /Users/young/programs/docker_mysql/master/data:/var/lib/mysql -v /Users/young/programs/docker_mysql/master/conf/my.cnf:/etc/mysql/my.cnf -v /Users/young/programs/docker_mysql/master/mysql-files:/var/lib/mysql-files mysql:latest
创建从数据库slave
docker run --name mysql-slave -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=yourpassword -v /Users/young/programs/docker_mysql/slave/data:/var/lib/mysql -v /Users/young/programs/docker_mysql/slave/conf/my.cnf:/etc/mysql/my.cnf -v /Users/young/programs/docker_mysql/master/mysql-files:/var/lib/mysql-files mysql:latest
这里要注意,MySQL8以后,需要在映射文件中加入-v /Users/young/programs/docker_mysql/master/mysql-files:/var/lib/mysql-files,否则会创建失败。
配置主从数据库
配置主数据库master
//进入master容器
docker exec -it mysql-master bash
//进入mysql数据库,密码为前边设置的密码
mysql -u root -p
//创建一个用户来同步数据,每个slave使用标准的MySQL用户名和密码连接master。进行复制操作的用户会授予REPLICATION SLAVE 权限。
//出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password
CREATE USER ‘slave‘@‘%‘ IDENTIFIED BY ‘your password‘;(这样有可能在slave创建与master连接时报错)
或者
CREATE USER ‘slave‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘your password‘;
//对用户进行授权(复制权限)
GRANT REPLICATION SLAVE ON *.* to ‘slave‘@‘%‘;
//查看状态,记住File、Position的值,在Slave中将用到
show master status;
//查询master容器的IP,会在slave设置主库连接时用到
docker inspect --format=‘{{.NetworkSettings.IPAddress}}‘ mysql-master
配置从数据库slave
//进入slave容器
docker exec -it mysql-slave bash
//启动mysql命令
mysql -u root -p
//设置主库链接 change master to 语法参考[语法参考](https://blog.csdn.net/jesseyoung/article/details/41942809)
change master to master_host=‘本机ip‘,master_user=‘slave‘,master_password=‘your password‘,master_log_file=‘mysql-bin.000004‘,master_log_pos=master‘s position,master_port=3306;
//启动从库同步
start slave;
//查看状态
show slave status\G;
//如果 show slave status\G命令结果中出现:
//Slave_IO_Running: Yes
//Slave_SQL_Running: Yes
//以上两项都为Yes,那说明没问题了。
//否则,从新配置从数据
stop slave;
reset slave all;
注意,如果在查看slave状态时,提示Authentication plugin ‘caching_sha2_password‘ cannot be loaded错误,出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,则要更改master数据库中密码的加密规则。所以,为了以防万一,在master创建用户来同步数据时,可以直接使用
CREATE USER ‘slave‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘your password‘;
Mac操作系统上使用Docker创建MySQL主从数据库
标签:work 授权 use 查看 server png ipad stop stat
本文系统来源:https://www.cnblogs.com/mr-ziyoung/p/13647897.html
内容总结
以上是互联网集市为您收集整理的Mac操作系统上使用Docker创建MySQL主从数据库全部内容,希望文章能够帮你解决Mac操作系统上使用Docker创建MySQL主从数据库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。