使用docker镜像安装mysql
- 下载镜像文件,
docker pull mysql:5.7。 - 启动容器,
docker run -name mysql -p 3306:3306 -e "MYSQL_ROOT_PASSWORD={rootpassword}" -d mysql:。- -p表示对外放开的映射端口;
- -e表示环境变量,需要注意的是必须设置root密码模式,模式有三种:MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD和MYSQL_RANDOM_ROOT_PASSWORD。
- -d表示后台运行。
配置主从关系
- 这里定义主数据库IP为192.168.0.1,从数据库IP为192.168.0.2。
- 进入主数据库容器
docker exec -ti mysql bash,进入数据库mysql -uroot -p,输入密码后,创建一个从数据库访问的用户create user 'repl'@'192.168.0.2' identified by 'repl123';,赋予权限grant replication slave on *.* to 'repl'@'192.168.0.2';,再flush一下flush previleges;。 - 修改主数据库配置文件,一般为/etc/mysql/my.cnf,本文使用的镜像目录使用
vim /etc/mysql/mysql.conf.d/mysql.cnf,添加如图配置。
需要注意的是使用镜像启动的容器可能没有vim命令,如果出现该情况,可以使用apt-get update更新后apt-get install vim解决。如果update较慢可以参考apt-get更换为国内阿里云源。 - 同样进入从数据库容器修改mysql.cnf文件。需要注意的是这个里的server-id一定要比主数据库的要大。
- 进入从数据库中执行
change master to master_host='192.168.0.1', master_user='repl', master_log_pos=154, master_log_file='mysql-bin.000001',master_password='repl123';。master_log_file和master_log_pos的值可以在主数据库执行show master status;查看。 - 启动从数据库模式
start slave,查看主从状态show slave status \G,大功告成。!