第一步,安装MySQL
docker images
首先要安装好MySQL镜像,然后直接创建MySQL服务。
docker run -p 3307:3306 --name mysql-master \
-v /mydata/mysql/master/log:/var/log/mysql \
-v /mydata/mysql/master/data:/var/lib/mysql \
-v /mydata/mysql/master/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
上面的命令的作用是,把容器的3306端口映射到主机的3307,把容器里面的文件夹挂载到主机,最后是设置密码,并安装5.7版本。运行结果如下:
再创建从库
docker run -p 3317:3306 --name mysql-slaver-01 \
-v /mydata/mysql/slaver/log:/var/log/mysql \
-v /mydata/mysql/slaver/data:/var/lib/mysql \
-v /mydata/mysql/slaver/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
docker ps
接下来开始配置,两个数据库都要配置。
使用命令 ,创建配置文件。
vi /mydata/mysql/master/conf/my.cnf
vi /mydata/mysql/slaver/conf/my.cnf
主数据库配置信息如下。
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
server_id=1
log-bin=mysql-bin
read-only=0
binlog-do-db=t_order
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
从数据库配置信息如下:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
server_id=2
log-bin=mysql-bin
read-only=1
binlog-do-db=t_order
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
两个的配置只有server_id和read-only不同。
第二步,连接MySQL
现在我们可以用我们的可视化工具连接MySQL了,我使用的是navicat。
连接成功。
可以看到这里我是两个端口,连接了两个MySQL数据库。
接着要添加一个我们用来同步的用户。
GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by '123456';
SHOW MASTER STATUS;
然后再配置从数据库,
change master to master_host='192.168.56.10',master_user='backup',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=0,master_port=3307
里面的参数主要有主数据库的ip地址,刚刚定义的主数据库的账号密码,和二进制文件,开始定位。
SHOW MASTER STATUS;
开启同步:START SLAVE;
可以看到已经生成了对应的需要同步的文件。这就配置成功了 。
然后就可以验证了。
第三步,开始验证
1、运行一个创建表的命令,注意这里创建的库一定是我们上面已经在MySQL配置文件中配置的要同步的库。
发现数据库已经同步创建好了。
再创建表,
发现都ok。
这就完成了。