最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker搭建MySQL的實(shí)現(xiàn)示例

 更新時(shí)間:2025年05月09日 10:11:25   作者:Dolphin_Home  
本文主要介紹了Docker搭建MySQL的實(shí)現(xiàn)示例,包括MySQL 8.0和MySQL 5.7,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

準(zhǔn)備工作

  • 先準(zhǔn)備配置目錄和持久化目錄,舉個(gè)栗子:mkdir -p /opt/module/mysql/{conf,data,log}
  • 準(zhǔn)備配置文件*.cnf,放到/opt/module/mysql/conf目錄下。
  • 當(dāng)然不準(zhǔn)備也沒(méi)事,容器中有個(gè)默認(rèn)配置:/etc/mysql/conf.d/my.cnf

拉取官方MySQL鏡像

# 拉取 mysql8.0.33
docker pull mysql:8.0.33
docker pull mysql:5.7 

# 拉取最新版mysql鏡像
docker pull mysql

運(yùn)行鏡像【安裝MySQL8.0】

docker run -d -p 3306:3306 --name mysql \
-v /opt/module/mysql/conf:/etc/mysql/conf.d \
-v /opt/module/mysql/data:/var/lib/mysql \
-v /opt/module/mysql/log:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=root mysql:8.0.33

-d 表示后臺(tái)啟動(dòng);
-p 3306:3306 表示端口映射,前面是主機(jī)端口,后面是代表容器端口;
--name mysql 表示容器名稱;

-v /opt/module/mysql/conf:/etc/mysql/conf.d 掛載配置文件,前面是主機(jī)目錄,后面是容器內(nèi)目錄。
特別說(shuō)明:

  • MySQL默認(rèn)配置文件為/etc/mysql/my.cnf,該文件里面最后有一行!includedir /etc/mysql/conf.d/,表示包含該文件夾下面的*.cnf配置,故自定義配置放到該目錄下即可;
  • 比較常用的方式是-v /opt/module/mysql/conf/my.cnf:/etc/mysql/my.cnf,直接掛載/opt/module/mysql/conf/my.cnf替換掉/etc/mysql/my.cnf文件;
  • 兩種方式都行,個(gè)人更喜歡前一種;

-v /opt/module/mysql/data:/var/lib/mysql 掛載數(shù)據(jù)文件,前面是主機(jī)目錄,后面是容器內(nèi)目錄;

-v /opt/module/mysql/log:/var/log/mysql 掛載數(shù)據(jù)文件,前面是主機(jī)目錄,后面是容器內(nèi)目錄;

-e MYSQL_ROOT_PASSWORD=root 表示增加環(huán)境變量,等號(hào)前面是變量名稱,這里是設(shè)置密碼為root;
mysql:8.0.31 表示鏡像名稱和tag;

設(shè)置mysql開(kāi)機(jī)自啟

#查看是否運(yùn)行
docker ps -a
#設(shè)置mysql開(kāi)機(jī)自啟
sudo docker update mysql --restart=always

查看啟動(dòng)日志

#docker logs [服務(wù)id/服務(wù)名]
docker logs mysql

docker logs -f -t --tail 20 mysql

進(jìn)入MySQL容器內(nèi)部

docker ps -a     # 查看正在運(yùn)行的容器,并得到 容器id

# 進(jìn)入mysql容器內(nèi)部
docker exec -it [容器id] /bin/bash  # 中間那個(gè)是容器id 就是 CONTAINER_ID
#  -it 表示進(jìn)入
docker exec -it mysql bash
docker exec -it mysql /bin/bash
# 使用 命令別名 開(kāi)啟 ll命令
cat <<EOF >> /etc/profile
alias ll='ls -l --color=tty'
alias grep='grep --color=auto'
EOF

檢查

# 執(zhí)行如下命令可以登錄MySQL
docker exec -it mysql mysql -uroot -p  #回車后輸入密碼進(jìn)入MySQL
# 執(zhí)行相關(guān)MySQL語(yǔ)句查詢
show databases; #回車

配置my.cnf

cat <<EOF >> /opt/module/mysql/conf/my.cnf
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
EOF

查看docker下的ip地址

docker inspect [container_id 容器id]
或
docker inspect [container_id 容器id] | grep ip address

docker inspect --format='{{.NetworkSettings.IPAddress}}' [container_id 容器id]

查看防火墻【開(kāi)放端口】

# 查詢端口是否開(kāi)放
firewall-cmd --query-port=3306/tcp

# 開(kāi)放3306端口
firewall-cmd --permanent --add-port=3306/tcp

# 移除端口
firewall-cmd --permanent --remove-port=3306/tcp

# 重啟防火墻(修改配置后要重啟防火墻)
firewall-cmd --reload

# 查看已經(jīng)開(kāi)發(fā)那些端口
firewall-cmd --list-ports
firewall-cmd --zone=public --list-ports

卸載

#停止mysql服務(wù)(也可以停止其他)
#docker stop [容器id/容器名]
docker stop mysql

#刪除mysql服務(wù)(也可以刪除其他)
#docker rm [服務(wù)id/服務(wù)名]
docker rm mysql

#刪除mysql鏡像
#docker rmi [鏡像id/鏡像名]
docker rmi mysql

常見(jiàn)錯(cuò)誤

mysql Tablespace exists解決 1813 - Tablespace ‘xx.xx`’ exists.

執(zhí)行如下命令:

mysql> show global variables like "%datadir%";
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| datadir       | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.03 sec)

去這個(gè)目錄(/var/lib/mysql/ )下面找 表名.idb 文件,刪除該.ibd文件文件后,再重新創(chuàng)建表就沒(méi)有問(wèn)題了

補(bǔ)充MySQL權(quán)限操作

MySQL中:

創(chuàng)建hadoop用戶,密碼為:root

給hadoop用戶,分配可以操作AAA、BBB數(shù)據(jù)庫(kù)權(quán)限

開(kāi)啟hadoop用戶的遠(yuǎn)程訪問(wèn)權(quán)限

在MySQL中,你可以通過(guò)以下步驟來(lái)完成上述任務(wù):

創(chuàng)建用戶并設(shè)置密碼

CREATE USER 'hadoop'@'localhost' IDENTIFIED BY 'root';
FLUSH PRIVILEGES;

這將在本地創(chuàng)建一個(gè)名為’hadoop’的用戶,并設(shè)置密碼為’root’。如果要允許從任何主機(jī)遠(yuǎn)程訪問(wèn),可以使用以下命令:

CREATE USER 'hadoop'@'%' IDENTIFIED BY 'root';
FLUSH PRIVILEGES;

給用戶分配數(shù)據(jù)庫(kù)權(quán)限【指定數(shù)據(jù)庫(kù)】

GRANT ALL PRIVILEGES ON AAA.* TO 'hadoop'@'localhost';
GRANT ALL PRIVILEGES ON BBB.* TO 'hadoop'@'localhost';
FLUSH PRIVILEGES;

這將授予用戶’hadoop’在本地對(duì)數(shù)據(jù)庫(kù)’AAA’和’BBB’的全部權(quán)限。如果要允許從任何主機(jī)遠(yuǎn)程訪問(wèn),可以使用以下命令:

GRANT ALL PRIVILEGES ON AAA.* TO 'hadoop'@'%';
GRANT ALL PRIVILEGES ON BBB.* TO 'hadoop'@'%';
FLUSH PRIVILEGES;

給用戶分配數(shù)據(jù)庫(kù)權(quán)限【全部數(shù)據(jù)庫(kù)】

如果你想給hadoop用戶分配可以操作所有數(shù)據(jù)庫(kù)的權(quán)限,你可以使用通配符*。以下是在MySQL中授予用戶對(duì)所有數(shù)據(jù)庫(kù)的全部權(quán)限的方法:

-- 在localhost上授予權(quán)限
GRANT ALL PRIVILEGES ON *.* TO 'hadoop'@'localhost' WITH GRANT OPTION;

-- 允許遠(yuǎn)程訪問(wèn)時(shí),使用以下語(yǔ)句
GRANT ALL PRIVILEGES ON *.* TO 'hadoop'@'%' WITH GRANT OPTION;

上述語(yǔ)句中,*.*表示所有數(shù)據(jù)庫(kù)的所有表。WITH GRANT OPTION表示hadoop用戶將擁有授予權(quán)限給其他用戶的權(quán)限。

請(qǐng)注意,給予用戶對(duì)所有數(shù)據(jù)庫(kù)的全部權(quán)限可能存在安全風(fēng)險(xiǎn),因此在生產(chǎn)環(huán)境中應(yīng)該仔細(xì)考慮授權(quán)策略,只授予用戶實(shí)際需要的最小權(quán)限。

開(kāi)啟遠(yuǎn)程訪問(wèn)權(quán)限

默認(rèn)情況下,MySQL用戶只能從本地連接。為了允許遠(yuǎn)程連接,你需要修改MySQL配置文件,并重新啟動(dòng)MySQL服務(wù)。

打開(kāi)MySQL配置文件,一般在/etc/mysql/my.cnf/etc/my.cnf。找到并注釋掉或修改如下行:

#bind-address = 127.0.0.1

將上述行注釋掉或者將127.0.0.1改成服務(wù)器的IP地址。然后保存文件。

重啟MySQL服務(wù):

sudo service mysql restart

請(qǐng)注意,為了安全考慮,最好只允許特定IP地址范圍訪問(wèn)MySQL。如果是在生產(chǎn)環(huán)境中使用,還應(yīng)該考慮使用SSH隧道或SSL來(lái)加密連接。

補(bǔ)充內(nèi)容Docker安裝MySQL5.7

準(zhǔn)備工作

  • 先準(zhǔn)備配置目錄和持久化目錄,舉個(gè)栗子:mkdir -p /opt/module/mysql/{conf,data,log}
  • 準(zhǔn)備配置文件*.cnf,放到/opt/module/mysql/conf目錄下。
  • 當(dāng)然不準(zhǔn)備也沒(méi)事,容器中有個(gè)默認(rèn)配置:/etc/mysql/conf.d/my.cnf

精簡(jiǎn)版

安裝MySQL 5.7 可以通過(guò) Docker 進(jìn)行,以下是通過(guò) Docker 安裝 MySQL 5.7 的基本步驟:

  • 安裝 Docker:如果你還沒(méi)有安裝 Docker,請(qǐng)先安裝 Docker。你可以在 Docker 官網(wǎng) 上找到適合你操作系統(tǒng)的安裝說(shuō)明。

  • 拉取 MySQL 5.7 鏡像:打開(kāi)終端(命令行界面)并運(yùn)行以下命令拉取 MySQL 5.7 鏡像:

    docker pull mysql:5.7
    
  • 運(yùn)行 MySQL 容器:運(yùn)行以下命令創(chuàng)建并啟動(dòng)一個(gè) MySQL 容器:

    docker run -d --name=mysql-5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=your_password mysql:5.7
    

    這里,將 your_password 替換為你想要設(shè)置的 MySQL root 用戶的密碼。

    • -d 表示在后臺(tái)運(yùn)行容器。
    • --name=mysql-5.7 給容器起一個(gè)名字,這里是 mysql-5.7,你可以根據(jù)需要更改。
    • -p 3306:3306 將容器的 MySQL 服務(wù)端口映射到主機(jī)的 3306 端口。
    • -e MYSQL_ROOT_PASSWORD=your_password 設(shè)置 MySQL root 用戶的密碼。
  • 進(jìn)入 MySQL 容器:如果你想在容器內(nèi)執(zhí)行一些 MySQL 命令,可以使用以下命令進(jìn)入容器:

    docker exec -it mysql-5.7 mysql -uroot -p
    

    輸入你在第 3 步中設(shè)置的密碼,然后你就可以在容器內(nèi)使用 MySQL 了。

現(xiàn)在,你已經(jīng)成功在 Docker 中安裝并運(yùn)行了 MySQL 5.7。請(qǐng)注意,這是一個(gè)簡(jiǎn)單的配置,生產(chǎn)環(huán)境中可能需要更多的配置選項(xiàng),如數(shù)據(jù)卷、持久化存儲(chǔ)等。

??進(jìn)階版

docker run -d -p 3306:3306 --name mysql-5.7 \
-v /opt/module/mysql/conf:/etc/mysql/conf.d \
-v /opt/module/mysql/data:/var/lib/mysql \
-v /opt/module/mysql/log:/var/log/mysql \
--restart=always --privileged=true \
-e MYSQL_ROOT_PASSWORD=root mysql:5.7
  • -d: 表示以后臺(tái)模式運(yùn)行容器。
  • -p 3306:3306: 將主機(jī)的 3306 端口映射到容器的 3306 端口。
  • --name mysql-5.7: 為容器指定一個(gè)名字(mysql-5.7)。
  • -v /opt/module/mysql/conf:/etc/mysql/conf.d:將主機(jī)上的 MySQL 配置文件目錄 /opt/module/mysql/conf 映射到容器內(nèi)的 /etc/mysql/conf.d 目錄,以便你可以自定義 MySQL 的配置?!救萜髦蠱ySQL配置文件:/etc/mysql/conf.d/my.cnf
  • -v /opt/module/mysql/data:/var/lib/mysql: 將主機(jī)上的 MySQL 數(shù)據(jù)目錄映射到容器內(nèi)的相應(yīng)位置。
  • -v /opt/module/mysql/log:/var/log/mysql: 將主機(jī)上的 MySQL 日志目錄映射到容器內(nèi)的相應(yīng)位置。
  • --restart=always: 表示容器在退出時(shí)總是重新啟動(dòng)。
  • --privileged=true: 這個(gè)選項(xiàng)賦予容器所有的 Linux 的 capabilities,并打開(kāi)所有的 Linux Security Modules。在一般情況下,最好僅提供容器所需的最小權(quán)限。如果沒(méi)有特殊需求,建議不使用這個(gè)選項(xiàng)。

 到此這篇關(guān)于Docker搭建MySQL的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Docker搭建MySQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql解壓包的安裝基礎(chǔ)教程

    mysql解壓包的安裝基礎(chǔ)教程

    這篇文章主要為大家詳細(xì)介紹了mysql解壓包的安裝基礎(chǔ)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 淺談MySQL中float、double、decimal三個(gè)浮點(diǎn)類型的區(qū)別與總結(jié)

    淺談MySQL中float、double、decimal三個(gè)浮點(diǎn)類型的區(qū)別與總結(jié)

    這篇文章主要介紹了淺談MySQL中float、double、decimal三個(gè)浮點(diǎn)類型的區(qū)別與總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • mysql中插入emoji表情失敗的原因與解決

    mysql中插入emoji表情失敗的原因與解決

    這篇文章主要給大家介紹了關(guān)于mysql中插入emoji表情失敗的原因與解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • MySQL嵌套查詢實(shí)例詳解

    MySQL嵌套查詢實(shí)例詳解

    這篇文章主要介紹了MySQL嵌套查詢的使用技巧,結(jié)合實(shí)例形式較為詳細(xì)的分析了MySQL嵌套查詢參數(shù)設(shè)置、使用方法與注意事項(xiàng),需要的朋友可以參考下
    2015-12-12
  • MyBatis中實(shí)現(xiàn)動(dòng)態(tài)SQL標(biāo)簽

    MyBatis中實(shí)現(xiàn)動(dòng)態(tài)SQL標(biāo)簽

    動(dòng)態(tài)SQL是MyBatis的一項(xiàng)強(qiáng)大功能,它允許開(kāi)發(fā)者根據(jù)條件動(dòng)態(tài)地生成SQL語(yǔ)句,本文主要介紹了MyBatis中實(shí)現(xiàn)動(dòng)態(tài)SQL標(biāo)簽,感興趣的可以可以了解一下
    2024-09-09
  • MySQL日志分析軟件mysqlsla的安裝和使用教程

    MySQL日志分析軟件mysqlsla的安裝和使用教程

    這篇文章主要介紹了MySQL日志分析軟件mysqlsla的安裝和使用教程,文中以Linux系統(tǒng)作為環(huán)境進(jìn)行示例,需要的朋友可以參考下
    2015-11-11
  • 淺談MySQL和Lucene索引的對(duì)比分析

    淺談MySQL和Lucene索引的對(duì)比分析

    下面小編就為大家?guī)?lái)一篇MySQL和Lucene索引的對(duì)比分析。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • mysql中取出json字段的小技巧

    mysql中取出json字段的小技巧

    這篇文章主要介紹了mysql中取出json字段的小技巧,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • mysql?樂(lè)觀鎖和悲觀鎖的具體使用

    mysql?樂(lè)觀鎖和悲觀鎖的具體使用

    本文主要介紹了mysql?樂(lè)觀鎖和悲觀鎖的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • mysql視圖之創(chuàng)建視圖(CREATE VIEW)和使用限制實(shí)例詳解

    mysql視圖之創(chuàng)建視圖(CREATE VIEW)和使用限制實(shí)例詳解

    這篇文章主要介紹了mysql視圖之創(chuàng)建視圖(CREATE VIEW)和使用限制,結(jié)合實(shí)例形式詳細(xì)分析了mysql視圖創(chuàng)建于使用相關(guān)原理與操作注意事項(xiàng),需要的朋友可以參考下
    2019-12-12

最新評(píng)論

柘荣县| 门头沟区| 基隆市| 天门市| 新乡县| 金寨县| 淳安县| 齐齐哈尔市| 荣昌县| 金阳县| 太湖县| 浦江县| 长子县| 哈密市| 中山市| 昌图县| 基隆市| 南汇区| 南华县| 全南县| 岚皋县| 固始县| 澜沧| 日照市| 和硕县| 花垣县| 襄汾县| 汉中市| 东山县| 兰坪| 浦东新区| 儋州市| 洛浦县| 赤城县| 萝北县| 长沙县| 玉溪市| 杭锦旗| 建德市| 冷水江市| 天祝|