docker 安装mysql 主从搭建

一、docker 安装不做介绍了

二、mysql搭建

    1. 个人比较喜欢在指定目录下存放docker服务,如/opt/data/docker_conf 

        mkdir /opt/data/docker_conf 

    2. mysql 主搭建

        cd /opt/data/docker_conf

        mdkir mysql1

        cd mysql1

        vi run.sh

project_path=$( cd `dirname $0`;pwd)
project_name=mysql2
echo 3308

# -v ${project_path}/config:/etc/mysql\
docker rm -f ${project_name};
docker run -it -p 3308:3306 -e MYSQL_ROOT_PASSWORD="root"\
 -v ${project_path}/data:/var/lib/mysql\
 # -v ${project_path}/config:/etc/mysql\
 --name ${project_name}\
 --privileged=true\
 mysql:5.7.35\
 --lower_case_table_names=1\
 --character-set-server=utf8mb4\
 --collation-server=utf8mb4_unicode_ci\
 --lower_case_table_names=1\

        chmod 777

        ./run.sh

        启动好之后 ctrl+p+q 退出

        docker cp 容器id:/etc/mysql/ /opt/data/docker_conf/mysql1/config   (将容器内配置文件复制到容器外,直接复制的不行,按步骤来)

         vi run.sh  修改run.sh内容

project_path=$( cd `dirname $0`;pwd)
project_name=mysql1
echo 3308

# -v ${project_path}/config:/etc/mysql\
docker rm -f ${project_name};
docker run -it -p 3308:3306 -e MYSQL_ROOT_PASSWORD="root"\
 -v ${project_path}/data:/var/lib/mysql\
 -v ${project_path}/config:/etc/mysql\
 --name ${project_name}\
 --privileged=true\
 mysql:5.7.35\
 --lower_case_table_names=1\
 --character-set-server=utf8mb4\
 --collation-server=utf8mb4_unicode_ci\
 --lower_case_table_names=1\
 --restart=always

vi config/mysql.conf.d/mysqld.cnf

docker 安装mysql 主从搭建_第1张图片

 innodb_buffer_pool_size 大小根据物理机内存设置 网上说是建议1/2左右 没试过 可以自行设置,还有一些mysql 的优化配置, 在这就不配置了,像我这么配的话,mysql会有瓶颈!!!

binlog-do-db 配置成自己想要同步的数据库名!!!!

./run.sh

3. mysql从搭建

   搭建跟主节点一致,不一样的地方在配置上面

docker 安装mysql 主从搭建_第2张图片

 innodb_buffer_pool_size 大小根据物理机内存设置

4. 创建连接

进入主数据库

show master status; 

记住File 和 Position

创建一个可以跨域的账户,以保证从服务器可以登陆主服务器的mysql数据库

create user ‘repl’@’%’ identified by ‘123456’; 

grant replication slave,replication client on . to ‘repl’@’%’; 

flush privileges; 

进入从数据库

绑定主从节点关系

change master to master_host=‘主数据库服务器的ip’,master_user=‘repl’,master_password=‘123456’,master_log_file=‘mysql-bin-master.000005’,master_log_pos=‘785’;

master_log_file 为主节点查询出来的File,master_log_pos为Position

start slave;

show slave status;

docker 安装mysql 主从搭建_第3张图片

查看状态 Slave_IO_Running和Slave_SQL_Running状态都为Yes 即配置成功!

如果为No的话 则检查绑定主从节点关系的sql 基本上就是各个参数有问题了

 

你可能感兴趣的:(数据库,容器)