91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

MacOS如何使用Docker創建MySQL主從數據庫

發布時間:2021-12-28 10:37:59 來源:億速云 閱讀:149 作者:小新 欄目:開發技術

這篇文章主要介紹MacOS如何使用Docker創建MySQL主從數據庫,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

一、拉取MySQL鏡像

通過終端獲取最新的MySQL鏡像

docker pull mysql/mysql-server

二、創建MySQL數據庫容器配置文件對應目錄

我們在當前用戶下創建一組目錄,用來存放MySQL容器配置文件,(Linux下可以省略此步驟)參考下圖:

MacOS如何使用Docker創建MySQL主從數據庫

注意:MySQL8版本以后,需要在映射文件中加入 mysql-files,否則MySQL數據庫容器會創建失敗。

因為在MacOS下不支持vi/vim 直接修改my.cnf文件,也不支持apt-get安裝vim,所以需要在本地新建兩個my.cnf映射文件。(Linux下可以通過vim直接修改配置文件)

master主庫對應的my.cnf配置文件為:

[mysqld]
server_id = 1
log-bin= mysql-bin
read-only=0
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema

slave從庫對應的my.cnf配置文件為:

[mysqld]
server_id = 2
log-bin= mysql-bin
read-only=1
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema

三、創建兩個MySQL數據庫容器

創建master主數據庫容器

docker run --name mysql-master -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /Users/yumaster/test/mysql_master_slave/master/data:/var/lib/mysql -v /Users/yumaster/test/mysql_master_slave/master/conf/my.cnf:/etc/mysql/my.cnf -v /Users/yumaster/test/mysql_master_slave/master/mysql-files:/var/lib/mysql-files mysql/mysql-server

創建slave從數據庫容器

docker run --name mysql-slave -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /Users/yumaster/test/mysql_master_slave/slave/data:/var/lib/mysql -v /Users/yumaster/test/mysql_master_slave/slave/conf/my.cnf:/etc/mysql/my.cnf -v /Users/yumaster/test/mysql_master_slave/slave/mysql-files:/var/lib/mysql-files mysql/mysql-server

如下圖,說明兩個MySQL容器創建成功

MacOS如何使用Docker創建MySQL主從數據庫

此時我們打開Docker儀表板可以看到,兩個容器已經運行起來了。而且端口就是我們之前創建的對應端口

MacOS如何使用Docker創建MySQL主從數據庫

我們通過Navicat連接會報哦1130錯誤,是因為所連接的用戶賬戶沒有遠程連接的權限。需要更改mysql數據庫里的user表里的host項

把localhost改成%

具體步驟:

mysql> use mysql
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 host from user where user='root';
+-----------+
| host      |
+-----------+
| localhost |
+-----------+
1 row in set (0.01 sec)

mysql> update user set host='%' where user = 'root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select host from user where user='root';
+------+
| host |
+------+
| %    |
+------+
1 row in set (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

四、主從數據庫配置

master主數據庫配置:

//進入master主數據容器
docker exec -it mysql-master mysql -uroot -p123456
//創建一個用戶來同步數據,每個slave使用標準的MySQL用戶名和密碼連接master。進行復制操作的用戶會授予REPLICATION SLAVE 權限。mysql8 之前的版本中加密規則是mysql_native_password,而在mysql8之后,加密規則是caching_sha2_password
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';(這樣有可能在slave創建與master連接時報錯)
或
CREATE USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
//對用戶進行授權
GRANT REPLICATION SLAVE ON *.* to 'slave'@'%';
//查看狀態,記住File、Position的值,在Slave中將用到
show master status;
//查詢master容器的IP,會在slave設置主庫連接時用到
docker inspect mysql-master | grep IPA;

mster的狀態,File mysql-bin.000003 Position 661

MacOS如何使用Docker創建MySQL主從數據庫

slave從數據庫配置:

//進入slave從數據容器
docker exec -it mysql-slave mysql -uroot -p123456
//設置主庫鏈接 change master to
change master to master_host='172.17.0.2',master_user='slave',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=661,master_port=3306;
//啟動從庫同步
start slave;
//查看狀態
show slave status\G;
//如果 show slave status\G命令結果中出現:
//Slave_IO_Running: Yes
//Slave_SQL_Running: Yes
//以上兩項都為Yes,那說明沒問題了。
//否則,從新配置從數據
stop slave;
reset slave all;

啟動從庫同步成功

MacOS如何使用Docker創建MySQL主從數據庫

五、主從驗證

我們在master上創建一個數據庫,然后創建一張表,再插入一條數據,相應的slave也會增加;

create database master_slave_demo;
use master_slave_demo;
create table userinfo(username varchar(50),age int);
insert into userinfo values('Toulon',25);
select * from userinfo;

在執行命令之前,主從數據庫數量相同;

MacOS如何使用Docker創建MySQL主從數據庫

master執行命令之后slave增加對應數據

MacOS如何使用Docker創建MySQL主從數據庫

可以發現主庫新增的數據已經同步過來了,MySQL的主從復制就設置完成了。(測試環境,MacOS M1 ARM64機器,Docker,MySQL 8.0.27)

以上是“MacOS如何使用Docker創建MySQL主從數據庫”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

雅安市| 沈阳市| 土默特左旗| 墨竹工卡县| 榆树市| 桃园市| 林甸县| 苏尼特右旗| 久治县| 遂川县| 冷水江市| 鞍山市| 横峰县| 乐都县| 苏州市| 金沙县| 石景山区| 贵溪市| 栾川县| 双桥区| 萨迦县| 上林县| 商河县| 台北市| 江华| 德江县| 兰溪市| 牙克石市| 平山县| 桑日县| 石台县| 清涧县| 南昌县| 酒泉市| 霍林郭勒市| 嘉义市| 芦溪县| 毕节市| 乃东县| 富裕县| 金寨县|