一、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
innodb_buffer_pool_size 大小根据物理机内存设置 网上说是建议1/2左右 没试过 可以自行设置,还有一些mysql 的优化配置, 在这就不配置了,像我这么配的话,mysql会有瓶颈!!!
binlog-do-db 配置成自己想要同步的数据库名!!!!
./run.sh
3. mysql从搭建
搭建跟主节点一致,不一样的地方在配置上面
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;
查看状态 Slave_IO_Running和Slave_SQL_Running状态都为Yes 即配置成功!
如果为No的话 则检查绑定主从节点关系的sql 基本上就是各个参数有问题了