Docker 安裝 MySQL(8和5.7)
本篇將介紹如何使用 Docker 部署 MySQL 數(shù)據(jù)庫(kù)及遠(yuǎn)程訪問(wèn)配置
安裝 MySQL
拉取鏡像
使用下面的命令拉取 MySQL 數(shù)據(jù)庫(kù)的鏡像:
$ sudo docker pull mysql # 拉取最新版本的鏡像,當(dāng)前為 MySQL 8 版本,tag 為 latest $ sudo docker pull mysql:5.7 # 指定拉取 MySQL 5.7 版本
也可以使用搜索命令,查找其他的 MySQL 相關(guān)鏡像,其中有標(biāo)識(shí) Stars 數(shù),即受歡迎程度。
$ sudo docker search mysql
運(yùn)行 MySQL
$ sudo docker run -p 3306:3306 \ --name mysql \ -v $PWD/conf:/etc/mysql/conf.d \ -v $PWD/logs:/logs \ -v $PWD/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=your-password \ -d mysql
命令說(shuō)明:
- -p 3306:3306 :將容器的 3306 端口映射到主機(jī)的 3306 端口。
- -v $PWD/conf:/etc/mysql/conf.d :將主機(jī)當(dāng)前目錄下的 conf/my.cnf 掛載到容器的 /etc/mysql/my.cnf。
- -v $PWD/logs:/logs :將主機(jī)當(dāng)前目錄下的 logs 目錄掛載到容器的 /logs。
- -v $PWD/data:/var/lib/mysql :將主機(jī)當(dāng)前目錄下的data目錄掛載到容器的 /var/lib/mysql 。
- -e MYSQL_ROOT_PASSWORD=your-password :初始化 root 用戶(hù)的密碼,建議使用復(fù)雜度高的密碼。
- -d mysql : 要部署的鏡像名,如果是5.7版本的話(huà),這里則為mysql:5.7
配置遠(yuǎn)程訪問(wèn)
遠(yuǎn)程訪問(wèn) MySQL 屬于基本配置,但是在配置的時(shí)候要注意安全性問(wèn)題,否則將存在安全性隱患,尤其是企業(yè)用服務(wù)器更要注重安全性。
并且需要注意服務(wù)器防火墻要開(kāi)啟 3306 端口,服務(wù)器提供商的安全組中也需要開(kāi)啟,否則會(huì)無(wú)法訪問(wèn)哦。
要配置遠(yuǎn)程訪問(wèn),先要打開(kāi) MySQL 的控制終端,使用下面的命令開(kāi)啟:
$ sudo docker exec -it mysql bash # 進(jìn)入 MySQL 容器 $ mysql -uroot -p # 登錄 MySQL,執(zhí)行后輸入密碼進(jìn)入 MySQL $ use mysql; # 選擇使用 mysql 數(shù)據(jù)庫(kù)
MySQL 8 配置
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
# 創(chuàng)建一個(gè)賬號(hào),用來(lái)進(jìn)行遠(yuǎn)程訪問(wèn);
# {usernama} 是遠(yuǎn)程訪問(wèn)登錄的用戶(hù)名,不建議用 root;
# {password} 是遠(yuǎn)程訪問(wèn)的登錄密碼;
# '%'代表的是所有IP,如果可以盡量設(shè)置指定 IP 或 IP 段
GRANT ALL ON *.* TO 'username'@'%';
# 賦予所有權(quán)限給之前創(chuàng)建的賬號(hào)
ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
# 確認(rèn)使用這里的密碼登錄此賬號(hào)
FLUSH PRIVILEGES;
# 刷新權(quán)限
完整命令如下所示:
CREATE USER 'james'@'%' IDENTIFIED BY '123456asd';
# 創(chuàng)建一個(gè)賬號(hào)-james,用來(lái)進(jìn)行遠(yuǎn)程訪問(wèn);
GRANT ALL ON *.* TO 'james'@'%';
# 賦予所有權(quán)限給之前創(chuàng)建的賬號(hào):james
ALTER USER 'james'@'%' IDENTIFIED WITH mysql_native_password BY '123456asd';
# 確認(rèn)使用密碼{123456asd}登錄此賬號(hào){james}
# 密碼盡量復(fù)雜,安全性更高。
FLUSH PRIVILEGES;
# 刷新權(quán)限
配置完畢后,使用 Navicat 工具或其他工具進(jìn)行連接測(cè)試即可。
MySQL 5.7 配置
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
# {usernama} 是遠(yuǎn)程訪問(wèn)登錄的用戶(hù)名,不建議用 root;
# {password} 是遠(yuǎn)程訪問(wèn)的登錄密碼;
# '%'代表的是所有IP,如果可以盡量設(shè)置指定 IP 或 IP 段
FLUSH PRIVILEGES;
# 刷新權(quán)限
配置完畢后,使用 Navicat 工具或其他工具進(jìn)行連接測(cè)試即可。
注:如果無(wú)法訪問(wèn)請(qǐng)注意防火墻 3306 端口是否開(kāi)啟,服務(wù)器提供商的安全組中的端口是否開(kāi)啟。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Docker容器搭建運(yùn)行python的深度學(xué)習(xí)環(huán)境的方法
本文主要介紹了Docker容器搭建運(yùn)行python的深度學(xué)習(xí)環(huán)境的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
docker安裝部署 onlyoffice的詳細(xì)過(guò)程
本文給大家分享docker安裝部署 onlyoffice的詳細(xì)過(guò)程,通過(guò)圖文并茂實(shí)例相結(jié)合給大家分享安裝Docker Desktop及如何進(jìn)入BIOS設(shè)置CPU的虛擬化,感興趣的朋友一起看看吧2021-06-06
Docker容器監(jiān)控及日志管理實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Docker容器監(jiān)控及日志管理實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
解決vscode docker插件docker.socket權(quán)限問(wèn)題
本文給大家分享關(guān)于vscode docker插件docker.socket權(quán)限問(wèn)題,文末給大家提到vscode中docker插件無(wú)法連接的問(wèn)題及解決方案,需要的朋友參考下吧2021-06-06
如何通過(guò)DOCKER OVERLAY2目錄名查找容器名和容器ID
這篇文章主要介紹了如何通過(guò)DOCKER OVERLAY2目錄名查找容器名和容器ID問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
讓非root用戶(hù)構(gòu)建Docker鏡像的三種方法
在默認(rèn)情況下,Docker?需要?root?權(quán)限或?sudo?才能運(yùn)行,這對(duì)于日常開(kāi)發(fā)和?CI/CD?流水線可能不夠方便,那么,如何讓?非?root?用戶(hù)?也能構(gòu)建和運(yùn)行?Docker?容器呢?本篇文章將介紹?三種方法?來(lái)實(shí)現(xiàn)這一目標(biāo),需要的朋友可以參考下2025-04-04
在宿主機(jī)上執(zhí)行docker容器內(nèi)部的shell或程序方式
這篇文章主要介紹了在宿主機(jī)上執(zhí)行docker容器內(nèi)部的shell或程序方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11

