中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker中怎么部署MySQL8集群

發布時間:2021-07-29 17:42:45 來源:億速云 閱讀:353 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關Docker中怎么部署MySQL8集群,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

一.CentOS7.9安裝Docker20

1.安裝yum-utils工具

yum install -y yum-utils

2.設置docker的依賴源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

注釋:CentOS直接使用yum命令安裝的Docker版本為1.13.1屬于舊版docker的最后一個版本,所以需要配置一個repo,才能安裝新版的Docker-CE(社區版)。Docker-EE(企業版)需收費讀者自行了解即可,這里使用CE社區版

3.安裝docker

yum -y install docker-ce

4.查看安裝的版本

docker -v
docker version

Docker中怎么部署MySQL8集群

5. 查看配套設置的版本

yum list installed | grep docker

Docker中怎么部署MySQL8集群

6.拉取MySQL8鏡像

docker pull mysql:8

注解:mysql:5.7代表mysql版本為5.7

查看docker鏡像

docker images

Docker中怎么部署MySQL8集群

二.部署MySQL集群(一主二從)

1.創建主從MySQL的配置及數據文件的存儲目錄

# 創建主服務的配置目錄和數據目錄
mkdir -p /usr/local/mysqlData/master/cnf
mkdir -p /usr/local/mysqlData/master/data

# 創建1號從服務器的配置目錄和數據目錄
mkdir -p /usr/local/mysqlData/slave/cnf
mkdir -p /usr/local/mysqlData/slave/data

# 創建2號從服務器的配置目錄和數據目錄
mkdir -p /usr/local/mysqlData/slave2/cnf
mkdir -p /usr/local/mysqlData/slave2/data

創建兩個從服務器的配置是因為MySQL配置的server-id不能重復

Docker中怎么部署MySQL8集群

2.配置主服務器的配置文件

vim /usr/local/mysqlData/master/cnf/mysql.cnf

配置文件如下

[mysqld]
## 設置server_id,注意要唯一
server-id=1
## 開啟binlog
log-bin=mysql-bin
## binlog緩存
binlog_cache_size=1M
## binlog格式(mixed、statement、row,默認格式是statement)
binlog_format=mixed
##設置字符編碼為utf8mb4
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4

3.配置從服務器的配置文件

# 1號從服務器
vim /usr/local/mysqlData/slave/cnf/mysql.cnf
# 2號從服務器
vim /usr/local/mysqlData/slave2/cnf/mysql.cnf

配置文件如下(1號的server-id設置為2,2號的server-id設置為3,不重復即可)

[mysqld]
## 設置server_id,注意要唯一
server-id=2
## 開啟binlog
log-bin=mysql-slave-bin
## relay_log配置中繼日志
relay_log=edu-mysql-relay-bin
## 如果需要同步函數或者存儲過程
log_bin_trust_function_creators=true
## binlog緩存
binlog_cache_size=1M
## binlog格式(mixed、statement、row,默認格式是statement)
binlog_format=mixed
##設置字符編碼為utf8mb4
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
slave_skip_errors=1062
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4

4.創建主從MySQL鏡像

# 主服務器實例化
docker run -itd -p 3307:3306 --name master -v /usr/local/mysqlData/master/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8 

# 1號從服務器實例化
docker run -itd -p 3308:3306 --name slaver -v /usr/local/mysqlData/slave/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/slave/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8 

# 2號從服務器實例化
docker run -itd -p 3309:3306 --name slaver2 -v /usr/local/mysqlData/slave2/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/slave2/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8

參數解釋

-p 指定容器暴露的端口,宿主機(物理機)端口: docker實例端口
-p 3307:3306 把物理機的3307端口給實例的端口3306端口進行映射

-v 給容器掛載存儲卷,掛載到容器的某個目錄
-v /usr/local/mysqlData/master/cnf:/etc/mysql/conf.d 把剛創建的配置文件夾映射成實例的/etc/mysql/conf.d
-v /usr/local/mysqlData/master/data:/var/lib/mysql 數據文件夾的映射

-e 指定環境變量,容器中可以使用該環境變量
-e MYSQL_ROOT_PASSWORD=123456 設置MySQL的root賬號密碼為123456

5.查看已創建的實例

docker ps -a

Docker中怎么部署MySQL8集群

6.創建mysql連接用戶

# 創建用戶 reader設置密碼為reader
CREATE USER reader IDENTIFIED BY 'reader';
# 給予reader同步權限
GRANT REPLICATION SLAVE ON *.* to 'reader'@'%';
FLUSH PRIVILEGES;

注解:其余的用戶,遠程連接的自行設置

7.獲取主服務器的連接信息

# MySQL的連接信息
SHOW MASTER STATUS;

#新開連接 獲取master實例的在docker的地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' master

Docker中怎么部署MySQL8集群

從服務器連接主服務器(兩臺從服務器均是以下操作)

# 配置連接的參數
change master to master_host='172.17.0.2',master_user='reader',master_password='reader',master_log_file='mysql-bin.000003',master_log_pos=2259;
# 啟動同步
start slave;
# 查看是否成功
show slave status\G

# 兩項都為Yes時代表成功。
# Slave_IO_Running: Yes
# Slave_SQL_Running: Yes

# 失敗需要使用停止連接后檢查其他賬號密碼,地址,pos等參數

# 停止連接,如果一次成功無需使用該命令
stop slave;

Docker中怎么部署MySQL8集群

三.結果

主服務器執行命令

SHOW SLAVE HOSTS;

Docker中怎么部署MySQL8集群

關于Docker中怎么部署MySQL8集群就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

剑河县| 龙岩市| 赞皇县| 宿迁市| 新津县| 商水县| 阳西县| 淮北市| 北辰区| 库车县| 清原| 道孚县| 上栗县| 阿瓦提县| 类乌齐县| 奉新县| 灵丘县| 兰考县| 藁城市| 龙海市| 吉林省| 泌阳县| 梁平县| 双辽市| 青岛市| 永平县| 历史| 扬州市| 昆山市| 柳江县| 临湘市| 革吉县| 噶尔县| 东源县| 浦城县| 宁城县| 阜新市| 巴马| 永川市| 衢州市| 泽普县|