Docker快速部署MYSQL8主從同步

0. 目標(biāo)

通過(guò)Docker快速部署mysql主從異步復(fù)制 , 不算下載鏡像介質(zhì)時(shí)間,部署一套主從復(fù)制架構(gòu)也就四五分鐘 ;

容器名 IP 端口
mysql8a 1.1.1.2 3316
mysql8b 1.1.1.2 3326

1. 準(zhǔn)備環(huán)境

獲取最新MYSQL鏡像(當(dāng)前為MySQL 8.0.19)

docker pull mysql

myzmac:~ myz$ docker images mysql
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               latest              9b51d9275906        2 weeks ago         547MB
myzmac:~ myz$ docker inspect mysql |grep -i mysql_version
                "MYSQL_VERSION=8.0.19-1debian10"

2. 創(chuàng)建實(shí)例

  • 實(shí)例mysql8a

docker run -m 256m --name mysql8a -h mysql8a -p 3316:3306 -p 33160:33060
-e TZ="Asia/Shanghai" -e MYSQL_ROOT_PASSWORD=welcome1 -d mysql

  • 部署實(shí)例mysql8b

docker run -m 256m --name mysql8b -h mysql8b -p 3326:3306 -p 33260:33060
-e TZ="Asia/Shanghai" -e MYSQL_ROOT_PASSWORD=welcome1 -d mysql

myzmac:~ myz$ docker ps -a
f2abab969bd5        mysql                       "docker-entrypoint.s…"   36 seconds ago      Up 35 seconds                    0.0.0.0:3326->3306/tcp, 0.0.0.0:33260->33060/tcp   mysql8b
40e823093e8f        mysql                       "docker-entrypoint.s…"   43 seconds ago      Up 42 seconds                    0.0.0.0:3316->3306/tcp, 0.0.0.0:33160->33060/tcp   mysql8a

3. 部署主從

  • ON MYSQL8A 主庫(kù)
    進(jìn)行一些基礎(chǔ)配置 , 數(shù)據(jù)庫(kù)已默認(rèn)binlog row 等,不需要額外配置;
docker exec -it mysql8a bash
mysql -uroot -pwelcome1
...
mysql> use mysql
mysql> create user 'rep'@'%' identified by 'rep123';
mysql> grant replication slave on *.*  to 'rep'@'%';
mysql> flush privileges;
mysql> set global server_id = 991;
mysql> show master status;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000002 |      869 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

mysql>      

  • ON MYSQL8B 從庫(kù)
    進(jìn)行一些基礎(chǔ)配置
docker exec -it mysql8b bash
mysql -uroot -pwelcome1
...
mysql> use mysql
mysql> create user 'rep'@'%' identified by 'rep123';
mysql> grant replication slave on *.*  to 'rep'@'%';
mysql> flush privileges;
mysql> set global server_id = 992;
#設(shè)置同步關(guān)系
mysql> CHANGE MASTER TO MASTER_HOST='1.1.1.2',MASTER_PORT=3316,MASTER_USER='rep',MASTER_PASSWORD='rep123',MASTER_LOG_FILE='binlog.000002',MASTER_LOG_POS=869;
#注意 master的HOST為宿主IP,端口為映射端口3316 
mysql> start slave ;
mysql> show slave status \G;
...
        Relay_Master_Log_File: binlog.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes 
...

#注 ,如果這里Slave_IO_Running: Connecting,可以先退出來(lái), 用rep用戶(hù)遠(yuǎn)程登錄一次;
mysql -h1.1.1.2 -P3316 -urep -prep123
然后再回到從庫(kù)stop slave ; start slave;

4.測(cè)試

  • ON MYSQL8A
mysql> create database mydb default character set utf8mb4;
mysql> use mydb;
mysql> create table tbl_tst (id int);
Query OK, 0 rows affected (0.03 sec)
mysql> insert into tbl_tst values (100);
Query OK, 1 row affected (0.02 sec)

  • ON MYSQL8B
mysql -uroot -pwelcome1
mysql> use mydb
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from tbl_tst;
+------+
| id   |
+------+
|  100 |
+------+
1 row in set (0.00 sec)

mysql>      

最后編輯于
?著作權(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)容

  • 一、實(shí)驗(yàn)背景 Docker 是一個(gè)開(kāi)源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建一個(gè)輕量級(jí)、可移植、自給自足的容器。 Doc...
    Bogon閱讀 1,254評(píng)論 0 2
  • 1:在系統(tǒng)中查詢(xún)官方鏡像 docker search mysql 可以看到提供的幾個(gè)版本。 我們也可以從官方網(wǎng)站端...
    szgl_lucifer閱讀 983評(píng)論 0 5
  • 參考網(wǎng)站:http://www.liyblog.top/p/11.html 1.mysql部署 mysql鏡像拉取...
    Alden_e3bf閱讀 494評(píng)論 1 0
  • 第一章 初入“11”班 “為什么!”時(shí)間總是那么的不讓人省心。 嶄新的柏油馬路,道路兩旁的樹(shù)被早秋的...
    二凡123閱讀 219評(píng)論 1 3
  • 別堆砌懷念讓劇情 變得狗血 深?lèi)?ài)了多年又何必 毀了經(jīng)典 都已成年不拖不欠 浪費(fèi)時(shí)間是我情愿 像謝幕的演員 眼看著燈...
    小檸Duo貓貓閱讀 172評(píng)論 0 1

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