docker安裝mysql集群

1、下載鏡像

docker search mysql 找到使用的版本
docker pull +鏡像版本

運(yùn)行鏡像 并掛載

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:8.0

編輯my.cnf文件
[client]
default_character_set=UTF8MB4 #設(shè)置編碼格式`
[mysqld]`
server_id=101 #指定serverid
binlog-ignore-db=mysql#指定忽視數(shù)據(jù)庫(kù)
log-bin=mysql-bin#指定mysql日志文件名
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7 #指定過(guò)期時(shí)間
slave_skip_errors=1062 #指定跳過(guò)特定一場(chǎng),主鍵重復(fù)
lower_case_table_names=2
gtid_mode=ON #開(kāi)啟global transction模式不再使用指定postion同步
enforce_gtid_consistency=ON


collation_server=utf8mb4_0900_ai_ci
character_set_server=UTF8MB4 
修改完配置后重啟master實(shí)例

docker restart mysql-master

進(jìn)入mysql-master容器 并進(jìn)入數(shù)據(jù)庫(kù)

docker exit -it mysql-master /bin/bash
mysql -uroot -proot

創(chuàng)建數(shù)據(jù)同步用戶(hù)

create user 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';.

運(yùn)行從庫(kù)mysql

修改從庫(kù)cnf
[client]
default_character_set=UTF8MB4 #設(shè)置編碼格式
[mysqld]
server_id=102 #指定serverid
binlog-ignore-db=mysql#指定忽視數(shù)據(jù)庫(kù)
log-bin=mysql-slave-bin#指定mysql日志文件名
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7 #指定過(guò)期時(shí)間
slave_skip_errors=1062 #指定跳過(guò)特定異常,主鍵重復(fù)
lower_case_table_names=2
gtid_mode=ON #開(kāi)啟global transction模式不再使用指定postion同步
ENFORCE_GTID_CONSISTENCY = ON
## relay_log配置中繼日志
relay_log=mall-mysql-relay-bin  
## log_slave_updates表示slave將復(fù)制事件寫(xiě)進(jìn)自己的二進(jìn)制日志
log_slave_updates=1  
## slave設(shè)置為只讀(具有super權(quán)限的用戶(hù)除外)
read_only=1
collation_server=utf8mb4_0900_ai_ci
character_set_server=UTF8MB4

兩種方式,配置從庫(kù)連接到主庫(kù)

1、根據(jù)postion從指定位置開(kāi)始同步

主要使用第二種,8.0之后的語(yǔ)法

2、gtid的方式,自動(dòng)同步,該方式在從庫(kù)掛了之后重啟,會(huì)自動(dòng)從上次的位置自動(dòng)同步。

CHANGE REPLICATION SOURCE TO SOURCE_HOST = '192.168.1.51', SOURCE_PORT = 3306, SOURCE_USER = 'slave', SOURCE_PASSWORD = '123456', SOURCE_AUTO_POSITION = 1;

START REPLICA; // slave start;

//START REPLICA IO_THREAD; //單獨(dú)開(kāi)啟io線(xiàn)程跟sql線(xiàn)程
//START REPLICA SQL_THREAD;

建議使用docker-compose 的方式建立共同的網(wǎng)橋,將主從都放在同一個(gè)網(wǎng)橋

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容