目錄一.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.安裝dockeryum -y install docker-ce
4.查看安裝的版本docker -vdocker version
5. 查看配套設置的版本yum list installed | grep docker
6.拉取MySQL8鏡像docker pull mysql:8
注解:mysql:5.7代表mysql版本為5.7
查看docker鏡像docker images二.部署MySQL集群(一主二從)
1.創建主從MySQL的配置及數據文件的存儲目錄# 創建主服務的配置目錄和數據目錄mkdir -p /usr/local/mysqlData/master/cnfmkdir -p /usr/local/mysqlData/master/data# 創建1號從服務器的配置目錄和數據目錄mkdir -p /usr/local/mysqlData/slave/cnfmkdir -p /usr/local/mysqlData/slave/data# 創建2號從服務器的配置目錄和數據目錄mkdir -p /usr/local/mysqlData/slave2/cnfmkdir -p /usr/local/mysqlData/slave2/data
創建兩個從服務器的配置是因為MySQL配置的server-id不能重復
2.配置主服務器的配置文件vim /usr/local/mysqlData/master/cnf/mysql.cnf
配置文件如下[mysqld]## 設置server_id,注意要唯一server-id=1## 開啟binloglog-bin=mysql-bin## binlog緩存binlog_cache_size=1M## binlog格式(mixed、statement、row,默認格式是statement)binlog_format=mixed##設置字符編碼為utf8mb4character-set-server = utf8mb4collation-server = utf8mb4_unicode_ciinit_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## 開啟binloglog-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##設置字符編碼為utf8mb4character-set-server = utf8mb4collation-server = utf8mb4_unicode_ciinit_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
6.創建mysql連接用戶# 創建用戶 reader設置密碼為readerCREATE 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
從服務器連接主服務器(兩臺從服務器均是以下操作)# 配置連接的參數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;三.結果
主服務器執行命令SHOW SLAVE HOSTS;
能從主服務器查詢到兩臺從服務器的ID以及端口。完成MySQL部署。
到此這篇關于Docker部署MySQL8集群(一主二從)的實現步驟的文章就介紹到這了,更多相關Docker部署MySQL8集群內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
分享名稱:Docker部署MySQL8集群(一主二從)的實現步驟
鏈接URL:http://vcdvsql.cn/article10/cehgo.html
成都網站建設公司_創新互聯,為您提供商城網站、網站收錄、企業建站、自適應網站、靜態網站、網站內鏈
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯