激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - MacOS使用Docker創建MySQL主從數據庫的方法

MacOS使用Docker創建MySQL主從數據庫的方法

2022-01-22 17:09土倫 服務器知識

這篇文章主要介紹了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配置文件為:

?
1
2
3
4
5
6
7
8
[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配置文件為:

?
1
2
3
4
5
6
7
8
[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改成%

具體步驟:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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主數據庫配置:

?
1
2
3
4
5
6
7
8
9
10
11
12
//進入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從數據庫配置:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//進入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也會增加;

?
1
2
3
4
5
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主從數據庫的文章就介紹到這了,更多相關docker創建mysql主從數據庫內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/yumaster/p/15737546.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产免费视频在线 | 99ri在线 | 精品一区二区三区在线视频 | 免费观看一级黄色片 | 免费一级a毛片在线播放视 日日草夜夜操 | 在线播放亚洲 | 国产一区二区在线免费播放 | av在线试看 | 中国一级免费视频 | fc2国产成人免费视频 | 精品成人免费一区二区在线播放 | 久久久久亚洲精品 | 日本中文高清 | 中文在线日韩 | 亚洲一区二区中文字幕在线观看 | 最新一区二区三区 | 黄色片免费在线播放 | 激情影院在线观看 | 午夜激情视频网站 | 日本特级a一片免费观看 | 久久在线精品视频 | 99热99精品| 成人做爽爽爽爽免费国产软件 | 免费视频xxxx | 午夜久久视频 | 成人毛片免费网站 | 亚洲精品com | 日本成人一二三区 | 久久久久久久久久91 | 国产精品久久久久久久久久久久久久久 | 成人影片在线免费观看 | 欧美成人午夜一区二区三区 | 欧美精品一区二区久久 | 亚州欧美视频 | 色欧美视频 | 龙床上的呻吟高h | 久久久涩| 欧美在线观看黄色 | 一区二区久久久久草草 | av手机免费在线观看 | 国产乱free国语对白 |