一、搭建mysql
1、拉取 MySQL 鏡像
這里我們拉取官方的最新版本的鏡像:
$ docker pull mysql:latest
查看是否已安裝了 mysql:
$ docker images
二、運行 MySQL 容器
1、創(chuàng)建掛載文件:2、運行容器
docker run -d --name mysql
-v /opt/datas/docker/mysqllog:/var/log/mysql
-v /opt/datas/docker/mysql:/var/lib/mysql
-v /opt/datas/docker/mysqlconf:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=123456
-p 3306:3306 mysql
-d (detach) : 后臺運行
–name : 為你的鏡像創(chuàng)建一個別名,該別名用于更好操作
-p : 映射端口,一般會將默認端口進行更改,避免與本機的 mysql端口沖突,如果你宿主機有mysql,請更改端口,如 -p 33060:3306
-e : 環(huán)境變量,為 mysql 的 root 用戶設(shè)置密碼為123456
-v : 指定數(shù)據(jù)卷掛載(etc為配置文件,log為日志文件,lib為配置文件),意思就是將 mysql 容器中的 /var/lib/mysql (這個是數(shù)據(jù)庫所有數(shù)據(jù)信息文件) 映射到宿主機 /Users/mew/Desktop/AllMyFile/Data/Docker/mysql 里面,這樣就不會出現(xiàn)容器刪除后數(shù)據(jù)也跟著刪除
備注:mysql5.7和之前版本,默認字符集為latin1,直接插入中文字符的時候會出現(xiàn)亂碼的情況。所以在安裝5.7及之前的版本的mysql的時候要把字符編碼修改為utf8字符集,utf8字符集指的是utf8mb3。從mysql8.0開始,數(shù)據(jù)庫默認字符編碼改為utf8mb4。這時候可以在運行時指定編碼
docker run -d --name mysql
-v /opt/datas/docker/mysqllog:/var/log/mysql
-v /opt/datas/docker/mysql:/var/lib/mysql
-v /opt/datas/docker/mysqlconf:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=123456
-p 3306:3306 mysql --character-set-server=utf8 --collation-server=utf8_general_ci
三、
二. 開啟遠程連接
默認mysql是不可以遠程連接的
1、進入到 mysql 容器中
$ docker exec -it mysql /bin/bash
2、通過上面的docker進入容器之后
登錄mysql:mysql -u root -p
密碼為123456,這個密碼是docker安裝mysql配置的
3、開啟遠程連接,由于我8.0運行后看到root授權(quán)的host為%,即為遠程訪問已經(jīng)開啟,所以這一步我省略了直接跳到修改密碼認證,否則不能省略。
ALTER USER ‘root’@‘%’ IDENTIFIED WITH
mysql_native_password BY ‘123456’; ,(這個密碼為123456,是之后遠程連接mysql的密碼)
刷新生效:FLUSH PRIVILEGES;
- 修改密碼認證配置。
由于mysql8.0和mysql5.7兩者的認證方式不一樣前者是caching_sha2_password,后者是my_native_password因此我們對它進行修改。
直接連接會報錯:
ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘root’;
修改后:
3、新增用戶(根據(jù)自己需要,使用root用戶也可以):
CREATE USER ‘zyh’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘zyh123!’;
4、給新建的用戶授權(quán)
GRANT ALL PRIVILEGES ON . TO zyh@‘%’; #授予所有權(quán)限
ALL PRIVILEGES 所有權(quán)限
. 所有數(shù)據(jù)庫
TO 后接用戶
5、刷新生效
FLUSH PRIVILEGES;
三、服務(wù)器設(shè)置
由于我的是百度云服務(wù)器默認打開了3306,所以不用在服務(wù)器設(shè)置中打開,但是阿里云服務(wù)器需要設(shè)置打開
驗證端口是否打開
打開cmd進入命令行,輸入
telnet 180.76.165.145 3306
如下所示,端口已開放文章來源:http://www.zghlxwxcb.cn/news/detail-796135.html
四:連接文章來源地址http://www.zghlxwxcb.cn/news/detail-796135.html
到了這里,關(guān)于docker搭建mysql并開啟遠程訪問的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!