目录
1.1 关系引入
【示意图:mysql和docker和操作系统之间的关系】
1.2 搭建mysql在docker中的环境
1.2.1 查询镜像
【命令:查询镜像】
docker search 镜像名称
【示例】
[root@localhost ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 14273 [OK]
mariadb MariaDB Server is a high performing open sou… 5455 [OK]
percona Percona Server is a fork of the MySQL relati… 617 [OK]
phpmyadmin phpMyAdmin - A web interface for MySQL and M… 831 [OK]
bitnami/mysql Bitnami MySQL Docker Image 90 [OK]
circleci/mysql MySQL is a widely used, open-source relation… 29
bitnami/mysqld-exporter 5
ubuntu/mysql MySQL open source fast, stable, multi-thread… 51
cimg/mysql 0
rapidfort/mysql RapidFort optimized, hardened image for MySQL 23
rapidfort/mysql8-ib RapidFort optimized, hardened image for MySQ… 9
google/mysql MySQL server for Google Compute Engine 23 [OK]
hashicorp/mysql-portworx-demo 0
rapidfort/mysql-official RapidFort optimized, hardened image for MySQ… 7
newrelic/mysql-plugin New Relic Plugin for monitoring MySQL databa… 1 [OK]
databack/mysql-backup Back up mysql databases to... anywhere! 86
bitnamicharts/mysql 0
linuxserver/mysql A Mysql container, brought to you by LinuxSe… 38
mirantis/mysql 0
docksal/mysql MySQL service images for Docksal - https://d… 0
linuxserver/mysql-workbench 50
vitess/mysqlctld vitess/mysqlctld 1 [OK]
eclipse/mysql Mysql 5.7, curl, rsync 0 [OK]
drupalci/mysql-5.5 https://www.drupal.org/project/drupalci 3 [OK]
drupalci/mysql-5.7 https://www.drupal.org/project/drupalci 0
1.2.2 拉取镜像
【命令:拉取镜像】
docker pull 镜像名称
docker pull 镜像名称:版本号(注:指定版本的写法)
【命令:查询镜像检查是否已下载到本地】
docker image ls
【示例】
[root@localhost ~]# docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
72a69066d2fe: Pull complete
93619dbc5b36: Pull complete
99da31dd6142: Pull complete
626033c43d70: Pull complete
37d5d7efb64e: Pull complete
ac563158d721: Pull complete
d2ba16033dad: Pull complete
688ba7d5c01a: Pull complete
00e060b6d11d: Pull complete
1c04857f594f: Pull complete
4d7cfa90e6ea: Pull complete
e0431212d27d: Pull complete
Digest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
[root@localhost ~]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 3218b38490ce 18 months ago 516MB
【示意图】
1.3 mysql主从原理
【示意图:mysql主从原理】
1.4 mysql的主配置
1.4.1 linux创建配置文件、文件夹
在/usr/local/中先创建software文件夹,再在software下创建mysql文件夹conf和data
【示例】
[root@localhost ~]# cd /usr/local
[root@localhost local]# cd /usr/local/software
[root@localhost software]# ls
jdk
[root@localhost software]# mkdir -p mysql/3306
[root@localhost software]# ls
jdk mysql
[root@localhost software]# cd mysql
[root@localhost mysql]# ls
3306
[root@localhost mysql]# cd 3306
[root@localhost 3306]# ls
[root@localhost 3306]# mkdir conf
[root@localhost 3306]# mkdir data
[root@localhost 3306]# ls
conf data
[root@localhost 3306]# cd ..
[root@localhost mysql]# ls
3306
【示意图】
1.4.2 查看文件结构
【命令:查看文件结构】
tree
【示例】
[root@localhost mysql]# tree
.
└── 3306
├── conf
└── data
3 directories, 0 files
[root@localhost mysql]# cd 3306
[root@localhost 3306]# tree
.
├── conf
└── data
2 directories, 1 file
【注意】如果没有tree命令, 需要先安装tree
【命令:安装tree】
yum -y install tree
【示例】
[root@localhost mysql]# tree
bash: tree: 未找到命令...
[root@localhost mysql]# yum -y install tree
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.ustc.edu.cn
* updates: mirrors.163.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 tree.x86_64.0.1.6.0-10.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
===============================================================================================================================================================================================
Package 架构 版本 源 大小
===============================================================================================================================================================================================
正在安装:
tree x86_64 1.6.0-10.el7 base 46 k
事务概要
===============================================================================================================================================================================================
安装 1 软件包
总下载量:46 k
安装大小:87 k
Downloading packages:
tree-1.6.0-10.el7.x86_64.rpm | 46 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : tree-1.6.0-10.el7.x86_64 1/1
验证中 : tree-1.6.0-10.el7.x86_64 1/1
已安装:
tree.x86_64 0:1.6.0-10.el7
完毕!
1.4.3 拷贝my.cnf文件到conf文件夹下
在下方文件区域找到文件夹/usr/local/software/mysql/3306/conf,右上角按钮上传本地文件my.cnf
【示意图:拷贝my.cnf文件到conf文件夹下】
【示例:tree查看文件结构是否拷贝成功】
[root@localhost mysql]# cd 3306
[root@localhost 3306]# tree
.
├── conf
│ └── my.cnf
├── data
1.4.4 查看my.cnf文件(可省略)
【命令:查看my.cnf文件】
cat my.cnf
【示例】
[root@localhost mysql]# cd 3306
[root@localhost 3306]# cd conf
[root@localhost conf]# cat conf
cat: conf: 没有那个文件或目录
[root@localhost conf]# ls
my.cnf
[root@localhost conf]# cat my.cnf
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# The MySQL Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
default_authentication_plugin=mysql_native_password
# Custom config should go here
!includedir /etc/mysql/conf.d/
server_id=200
1.4.5 进入my.cnf文件修改配置
【命令:进入my.cnf文件修改配置】
vim my.cnf
【修改内容】
server_id=200
log_bin=mysql-bin
binlog_format=row
【示例】
[root@localhost 3306]# cd conf
[root@localhost conf]# ls
my.cnf
[root@localhost conf]# vim my.cnf
[root@localhost conf]# cat my.cnf
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# The MySQL Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
default_authentication_plugin=mysql_native_password
# Custom config should go here
!includedir /etc/mysql/conf.d/
server_id=200 #服务器id
log_bin=mysql-bin #binlog名称
binlog_format=row #binlog的格式
[root@localhost conf]#
1.4.6 创建运行mysql主容器(master)
- docker run 命令
- -i:以交互模式运行容器
- -t:为容器重新分配一个伪输入终端
- --name :容器名称
- --privileged: 设置容器公开权限(默认为true)
- -p :映射端口 linux端口: 容器内置端口(mysql默认端口为3306)
- -v : linux挂载文件夹/文件和容器内路径的映射
- -e: 容器的环境变量(设置mysql默认用户名&密码)
- -d: 后台运行容器,并返回容器ID
【命令:创建mysql的容器(docker)】
docker run -it \
--name mysql_3306 \
--privileged \
-p 3306:3306 \
-v /usr/local/software/mysql/3306/conf/my.cnf:/etc/mysql/my.cnf \
-v /usr/local/software/mysql/3306/data:/var/lib/mysql \
-v /usr/local/software/mysql/3306/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql
【命令:查看docker服务器中容器状态及批量获取容器基本信息】(常用)
docker ps
【示例】
[root@localhost 3306]# docker run -it \
> --name mysql_3306 \
> --privileged \
> -p 3306:3306 \
> -v /usr/local/software/mysql/3306/conf/my.cnf:/etc/mysql/my.cnf \
> -v /usr/local/software/mysql/3306/data:/var/lib/mysql \
> -v /usr/local/software/mysql/3306/mysql-files:/var/lib/mysql-files \
> -e MYSQL_ROOT_PASSWORD=123321 \
> -d mysql
05231a95b9685d23c0b9145ed986861f2d89f1c906b28c23544e19040b115bc5
[root@localhost 3306]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
05231a95b968 mysql "docker-entrypoint.s…" 19 seconds ago Up 18 seconds 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql_3306
1.4.7 进入容器
- 进入容器实质上也是进入了一个linux环境。
- docker exec
- -it:以交互模式运行容器 ,为容器重新分配一个伪输入终端。
- bash: bash(GNU Bourne-Again Shell)是最常用的一种shell(运行在终端的互动程序)。
【命令:进入主mysql_3306容器】
docker exec -it mysql_3306 bash
【示例】
[root@localhost 3306]# docker exec -it mysql_3306 bash
root@05231a95b968:/#
【注】
【注意细节】
1.4.8 在容器中运行mysql客户端
【命令1:运行mysql客户端】
mysql -u用户名 -p密码
【注】
【命令2:显示所有数据库】
show databases;
【命令3:退出mysql环境和容器】
exit
【注】下面quit那儿也可以用exit
【示例】
[root@localhost 3306]# docker exec -it mysql_3306 bash
root@05231a95b968:/# ls
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@05231a95b968:/# cd etc
root@05231a95b968:/etc# cd mysql
root@05231a95b968:/etc/mysql# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.27 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)
mysql> quit
Bye
root@05231a95b968:/etc/mysql# exit
exit
[root@localhost 3306]#
1.4.9 开放指定端口和重新加载防火墙
- 开放指定端口
- firewall-cmd --zone=public --add-port=端口号/tcp --permanent
- --zone: public 公开端口
- --add-port: 端口号/协议名称
- --permanent: 永久开放
- firewall-cmd --zone=public --add-port=端口号/tcp --permanent
【命令1:开放指定端口3306】
firewall-cmd --zone=public --add-port=3306/tcp --permanent
【命令2:重新加载防火墙】
firewall-cmd --reload
【命令3:查看开放的端口号】
firewall-cmd --zone=public --list-ports
【示例】
[root@localhost 3306]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[root@localhost 3306]# firewall-cmd --reload
success
[root@localhost conf]# firewall-cmd --zone=public --list-ports
3306/tcp
1.4.10 navicat新建mysql连接并测试
【示意图】
【注意】主机和端口要根据想要连接的改,用户名和密码按个人设置的填
1.5 mysql的从配置
1.5.1 检查binlog是否开启
- 进入mysql容器,输入命令: show variables LIKE ‘log_%’
- ON: 表示已开启
- 看log_bin状态是否为ON
【命令:检查binlog是否开启】
show variables LIKE ‘log_%’
【示例:看log_bin状态是否为ON】
[root@localhost 3306]# docker exec -it mysql_3306 bash
root@05231a95b968:/# cd etc/mysql
root@05231a95b968:/etc/mysql# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.27 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show variables like 'log_%';
+----------------------------------------+----------------------------------------+
| Variable_name | Value |
+----------------------------------------+----------------------------------------+
| log_bin | ON |
| log_bin_basename | /var/lib/mysql/binlog |
| log_bin_index | /var/lib/mysql/binlog.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| log_error | stderr |
| log_error_services | log_filter_internal; log_sink_internal |
| log_error_suppression_list | |
| log_error_verbosity | 2 | |
| log_output | FILE |
| log_queries_not_using_indexes | OFF |
| log_raw | OFF |
| log_replica_updates | ON |
| log_slave_updates | ON |
| log_slow_admin_statements | OFF |
| log_slow_extra | OFF |
| log_slow_replica_statements | OFF |
| log_slow_slave_statements | OFF |
| log_statements_unsafe_for_binlog | ON |
| log_throttle_queries_not_using_indexes | 0 |
| log_timestamps | UTC |
+----------------------------------------+----------------------------------------+
21 rows in set (0.00 sec)
【或者:在navicat中新建查询,直接用mysql语句查询】
1.5.2 查看当前mysql容器中的binlog日志文件
- 切换目录到 / var/lib/mysql,查看日志文件。或者,也可以查看binlog.index查看日志情况。
[root@localhost 3306]# docker exec -it mysql_3306 bash
root@05231a95b968:/# ls
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@05231a95b968:/# cd /var/lib/mysql
root@05231a95b968:/var/lib/mysql# ls
'#ib_16384_0.dblwr' 05231a95b968.err binlog.000002 ca.pem ib_buffer_pool ibdata1 mysql.ibd public_key.pem sys
'#ib_16384_1.dblwr' auto.cnf binlog.index client-cert.pem ib_logfile0 ibtmp1 performance_schema server-cert.pem undo_001
'#innodb_temp' binlog.000001 ca-key.pem client-key.pem ib_logfile1 mysql private_key.pem server-key.pem undo_002
root@05231a95b968:/var/lib/mysql# cat binlog.index
./binlog.000001
./binlog.000002
1.5.3 查看当前mysql数据库binlog情况
- 登录mysql客户端: mysql -uroot -p123
- 使用命令: show master status;
【示例】
root@05231a95b968:/var/lib/mysql# mysql -uroot -p123321
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.27 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
【注】当前显示/var/lib/mysql/日志文件的最后一个文件,即本案例中的binlog.000002
1.5.4 创建与从(slave)服务通信的用户
- 在2.4.10中建立的navicat连接mysql_3306,在之前建立的查询,输入mysql语句:
- create user 'slave'@'%' identified by '123456';
- GRANT REPLICATION SLAVE,REPLICATION CLIENT ON . TO 'slave'@'%';
- ALTER USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
- flush privileges;
【示意图】
【注意】或者,在docker中的mysql中输入,也是一样的
【示例:在docker中的mysql中输入】
mysql> create user 'slave'@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'slave'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> ALTER USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
1.5.6 查询master的状态
【命令:查询master的状态】
show master status;
【示例】
mysql> show master status;
+---------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000002 | 156 | | | |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
mysql> exit
Bye
root@05231a95b968:/var/lib/mysql# exit
exit
【注】
【注意】或者,也可以直接在navicat查询中直接输入show master status;查询
1.5.7 获取master容器ip地址
- 退出容器,查询master容器内部地址
【示例】
[root@localhost conf]# docker inspect mysql_3306 |grep IPA
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAMConfig": null,
"IPAddress": "172.17.0.2",
【注】
1.5.8 新建配置文件夹
【示例】
[root@localhost ~]# cd /usr/local/software/mysql
[root@localhost mysql]# pwd
/usr/local/software/mysql
[root@localhost mysql]# mkdir -p 3310/conf 3310/data
[root@localhost mysql]# mkdir -p 3311/conf 3311/data
1.5.9 拷贝my.cnf文件到conf文件夹下
【示例】
[root@localhost conf]# cp my.cnf ../../3310/conf
[root@localhost conf]# cp my.cnf ../../3311/conf
【注】或者,参考1.4.3
1.5.10 进入my.cnf文件修改配置
【命令:进入my.cnf文件修改配置】
vim my.cnf
【修改内容:例如3310】
server_id=210
log_bin=mysql-slave01-bin
relay_log=wnhz-relay-bin
read_only=1
【示例:3310】
[root@localhost mysql]# cd 3310
[root@localhost 3310]# cd conf
[root@localhost conf]# ls
my.cnf
[root@localhost conf]# vim my.cnf
[root@localhost conf]# cat my.cnf
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# The MySQL Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
default_authentication_plugin=mysql_native_password
# Custom config should go here
!includedir /etc/mysql/conf.d/
server_id=210
log_bin=mysql-slave01-bin
relay_log=wnhz-relay-bin
read_only=1
[root@localhost conf]#
1.5.11 创建运行mysql从容器(slave01)
【命令:创建mysql的容器(docker)】
docker run -it \
--name mysql_3310 \
--privileged \
-p 3310:3306 \
-v /usr/local/software/mysql/3310/conf/my.cnf:/etc/mysql/my.cnf \
-v /usr/local/software/mysql/3310/data:/var/lib/mysql \
-v /usr/local/software/mysql/3310/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql
【示例】
[root@localhost 3310]# docker run -it \
> --name mysql_3310 \
> --privileged \
> -p 3310:3306 \
> -v /usr/local/software/mysql/3310/conf/my.cnf:/etc/mysql/my.cnf \
> -v /usr/local/software/mysql/3310/data:/var/lib/mysql \
> -v /usr/local/software/mysql/3310/mysql-files:/var/lib/mysql-files \
> -e MYSQL_ROOT_PASSWORD=123321 \
> -d mysql
72680c742611a2b5cf31bf77d9408111ffbc4a3f6dcfc4d141d43916c9ba1814
1.5.12 进入容器
【命令:进入从mysql_3310容器】
docker exec -it mysql_3310 bash
【示例】
[root@localhost 3310]# docker exec -it mysql_3310 bash
root@05231a95b968:/#
1.5.13 在容器中运行mysql客户端
【命令:运行mysql客户端】
mysql -u用户名 -p密码
【示例】
[root@localhost 3310]# docker exec -it mysql_3310 bash
root@72680c742611:/# mysql -uroot -p123321
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.27 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
1.5.14 修改从(slave)服务器与master关联
【命令:修改从(slave)服务器与master关联】
change master to
master_host='172.17.0.2',
master_user='slave',
master_password='123321',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=860;
【注】
【示例】
mysql> change master to
-> master_host='172.17.0.2',
-> master_user='slave',
-> master_password='123321',
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=860;
Query OK, 0 rows affected, 8 warnings (0.02 sec)
1.5.15 开启slave
【命令:开启slave】
start slave;
【示例】
mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.01 sec)
1.5.16 查询slave状态
【命令:查询slave状态】
show slave status \G;
【示例】
mysql> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for source to send event
Master_Host: 172.17.0.2
Master_User: slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 1071
Relay_Log_File: wnhz-relay-bin.000002
Relay_Log_Pos: 535
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 1071
Relay_Log_Space: 743
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 200
Master_UUID: e408d3a4-1a1b-11ee-9318-0242ac110002
Master_Info_File: mysql.slave_master_info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
Master_public_key_path:
Get_master_public_key: 0
Network_Namespace:
1 row in set, 1 warning (0.00 sec)
ERROR:
No query specified
mysql> exit
Bye
root@72680c742611:/# exit
exit
【注】当出现两个yes时就是配置成功了
1.5.17 开放指定端口和重新加载防火墙
【命令1:开放指定端口3310】
firewall-cmd --zone=public --add-port=3310/tcp --permanent
【命令2:重新加载防火墙】
firewall-cmd --reload
【命令3:查看开放的端口号】
firewall-cmd --zone=public --list-ports
【示例】
mysql> exit
Bye
root@72680c742611:/# exit
exit
[root@localhost 3310]# firewall-cmd --zone=public --add-port=3310/tcp --permanent
success
[root@localhost 3310]# firewall-cmd --reload
success
[root@localhost conf]# firewall-cmd --zone=public --list-ports
3310/tcp
1.5.18 navicat新建mysql连接并测试
- 参考1.4.10
【注意】主机和端口要根据想要连接的改,用户名和密码按个人设置的填写
1.5.19 测试主从
- 在master创建库book_db,查看从(slave)是否也相应创建成功。
【示意图】