日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

docker 安装mysql

發布時間:2025/5/22 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker 安装mysql 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過命令:?docker search mysql 搜索mysql,可以發現標記的那兩個是官方的

?

也可以在https://hub.docker.com上搜索mysql

網站上面搜索的會有很多配置提示,

?

?

?

右邊顯示的是pull命令:

?

輸入命令:?docker pull mysql/mysql-server?

?

也可以直接 docker run 語法,因為當run的時候,docker發現本地沒有該鏡像,回去該網站上pull

?

最好在創建鏡像的時候就指定用戶名,密碼和字符集,語法:

docker run -d -p 3306:3306 -e MYSQL_USER="nsky" #新增用戶名 nsky -e MYSQL_PASSWORD="password" #nksy的密碼 -e MYSQL_ROOT_PASSWORD="password" #root的密碼 --name [Name] [ImageName] #容器名稱 鏡像名稱,就是說以哪個鏡像為基礎創建容器 --character-set-server=utf8 #字符集 --collation-server=utf8_general_ci #級別

?

根據上面的語法,修改容器名稱和鏡像名稱

docker run -d -p 3306:3306 -e MYSQL_USER="nsky" -e MYSQL_PASSWORD="password" -e MYSQL_ROOT_PASSWORD="password" --name mysql01 mysql/mysql-server --character-set-server=utf8 --collation-server=utf8_general_ci

注意,你直接這樣復制命令是不行的,因為回車
解決方法:

1:不回車,變成一行

2:在回車后面加入空格右斜杠? \

docker run -d -p 3306:3306 \ -e MYSQL_USER="nsky" \ -e MYSQL_PASSWORD="password" \ -e MYSQL_ROOT_PASSWORD="password" \ --name mysql01 mysql/mysql-server \ --character-set-server=utf8 \ --collation-server=utf8_general_ci


然后在命令工具里面粘貼,回車,創建成功

docker ps? 查看運行的容器,狀態顯示已經啟動

啟動中是這樣的:

?

進入容器:?docker exec -it mysql01 bash?

?

登錄mysql :?mysql -uroot -p?

使用數據庫:

?

查看用戶名:?select user,host from user;?

?

從可以看到root的host是localhost,說明只能通過localhost登陸,localhost以外的地方就不能連接了。用Navicat可以測試下

?

用nsky可以

?

?

我用nsky登陸的,沒有權限使用數據庫,用root登陸,給權限命令:?GRANT ALL PRIVILEGES ON *.* TO 'nsky'@'%' WITH GRANT OPTION;

?

可以在創建用戶的時候,就讓他可以在外部連接:?CREATE USER 'test'@'%' IDENTIFIED BY 'pwd123456';?

?

?

查看字符集:?show variables like '%char%';

?

查看當前的collation:?show variables like 'collation%';?

?

?

?

?

?

?

但容器一刪除,剛這些配置都沒有了,所以建議是數據卷volume ,掛載

后期建議用mount ,語法更簡單

其實就是容器的文件跟宿主機的一個綁定

?

退出mysql容器,輸入exit即可

語法:

#注意:需要先創建/docker/mysql/config/my.cnf文件和/docker/mysql/data文件夾

docker run -d -p 3306:3306 --name mysql01 -v=/docker/mysql/config/my.cnf:/etc/my.cnf -v=/docker/mysql/data:/var/lib/mysql mysql/mysql-server

?

在chentos系統中,要區分是根目錄還是root目錄

這是root目錄,[root@localhost~]

?

這是根目錄 [root@localhost /]

?

如果是root目錄。那么:-v=/root/mysql/m.cnf

如果是根目錄,那么:-v=/mysql/m.cnf

?

?

my.cnf如下

[mysqld] user=mysql character-set-server=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8

?

確定后,進入容器,修改密碼

?

?修改密碼語句
mysql5.7版本語法:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');
mysql5.7之后版本語法:
ALTER user 'root'@'localhost' IDENTIFIED BY '123456'

?

可以通過命令:?docker inspect mysql02?

來看這個容器的一些參數和配置,比如我們配置的資料卷掛載

?

?

?

這樣刪除容器,在重新創建一個的話的,配置依然存在

當然,你創建容器的時候,-v后面的環境變量綁定必須之前的宿主機的路徑

參考:https://shimo.im/docs/anrlYMFEYloN52c8

?

轉載于:https://www.cnblogs.com/nsky/p/10413136.html

總結

以上是生活随笔為你收集整理的docker 安装mysql的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。