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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Docker安装mysql并连接

發布時間:2024/10/8 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker安装mysql并连接 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

推薦:https://www.cnblogs.com/sablier/p/11605606.html

安裝MySQL

我們可以先檢查一下服務器上有沒有MySQL的鏡像文件。

docker search mysql

下載MySQL鏡像并指定鏡像的版本號。

docker pull mysql:5.7

如果需要查看已經下載的鏡像文件,可以使用下面的命令。

docker images

創建并運行MySQL容器。

不建議用這種

docker run -d -p 33306:3306 --name mysql57 -v $PWD/mysql/conf:/etc/mysql/mysql.cnf.d -v $PWD/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
  • name:容器名,此處命名為mysql
  • e:配置信息,此處配置mysql的root用戶的登陸密碼
  • p:端口映射,此處映射 主機3306端口 到 容器的3306端口
  • d:源鏡像名,此處為 mysql:5.7
  • v:主機和容器的目錄映射關系,":"前為主機目錄,之后為容器目錄

注意,上面創建容器時我們又一次使用了數據卷操作,那是因為通常容器是隨時創建隨時刪除的,而數據庫中的數據卻是需要保留下來的,所以上面的兩個數據卷操作一個是映射了MySQL配置文件所在的文件夾,一個是映射了MySQL數據所在的文件夾,這里的數據卷操作非常重要。我們可以將MySQL的配置文件放在$PWD/mysql/conf目錄下,配置文件的具體內容如下所示:

[mysqld] pid-file=/var/run/mysqld/mysqld.pid socket=/var/run/mysqld/mysqld.sock datadir=/var/lib/mysql log-error=/var/log/mysql/error.log server-id=1 log-bin=/var/log/mysql/mysql-bin.log expire_logs_days=30 max_binlog_size=256M symbolic-links=0 # 或者 sudo docker run -p 33306:3306 --name mysql101 \ -v /usr/local/docker/mysql/conf:/etc/mysql \ -v /usr/local/docker/mysql/logs:/var/log/mysql \ -v /usr/local/docker/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql:5.7

如果安裝了MySQL 8.x版本(目前的最新版本),在使用客戶端工具連接服務器時可能會遇到“error 2059: Authentication plugin ‘caching_sha2_password’ cannot be loaded”的問題,這是因為MySQL 8.x默認使用了名為“caching_sha2_password”的機制對用戶口令進行了更好的保護,但是如果客戶端工具不支持新的認證方式,連接就會失敗。解決這個問題有兩種方式:一是升級客戶端工具來支持MySQL 8.x的認證方式;二是進入容器,修改MySQL的用戶口令認證方式。下面是具體的步驟,我們先用docker exec命令進入容器的交互式環境,假設運行MySQL 8.x的容器名字叫mysql8x。

docker exec -it mysql8x /bin/bashdocker exec -it mysql101 /bin/bash

進入容器的交互式Shell之后,可以首先利用MySQL的客戶端工具連接MySQL服務器。

mysql -u root -p Enter password: Your MySQL connection id is 16 Server version: 8.0.12 MySQL Community Server - GPL Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

接下來通過SQL來修改用戶密碼就可以了。
123456你想改就改

alter user 'root'@'%' identified with mysql_native_password by '123456' password expire never;

當然,如果愿意你也可以查看一下用戶表檢查是否修改成功。

use mysql; select user, host, plugin, authentication_string from user where user='root'; +------+-----------+-----------------------+-------------------------------------------+ | user | host | plugin | authentication_string | +------+-----------+-----------------------+-------------------------------------------+ | root | % | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | | root | localhost | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | +------+-----------+-----------------------+-------------------------------------------+ 2 rows in set (0.00 sec)

在完成上面的步驟后,現在即便不更新客戶端工具也可以連接MySQL 8.x了。


總結

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

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