Docker中如何修改mysql8默認加密方式
前言
使用過mysql8的應該都知道,升級后的mysql加密方式由之前的“mysql_native_password”改成了“caching_sha2_password”,但是由于我們一些工具或者驅動包沒有升級,導致無法連接,那么就需要修改mysql8默認的加密方式。
這里使用docker的方式啟動mysql8修改默認加密方式,直接安裝mysql8修改類似。這里大概有這么幾種方式:docker啟動命令中添加額外參數、mysql啟動后使用sql修改、啟動前掛載修改好的配置文件…
方法一
啟動前掛載修改好的配置文件,這里需要注意一下,一定要在docker容器啟動之前,下載一份對應版本的my.cnf修改好,啟動時進行掛載。如果是啟動后然后修改配置文件然后重啟docker容器是不生效的。
注:每個版本可能配置文件具體位置有差異,根據自己的版本來修改,我本次使用的8.0.27版本,配置文件位于“/etc/mysql”目錄下
首先我們找到一份my.cnf文件,可以官網下載,也可以從別人哪里copy,這里也有一個小技巧可以獲取到這個文件。你先docker run啟動mysql容器,然后將容器中的配置文件copy出來,然后再把這個沒用的容器銷毀掉就行了。
在my.cnf文件的[mysqld]配置下添加如下配置:
default-authentication-plugin=mysql_native_password
修改好之后啟動容器并掛載好配置文件即可:
# 相關信息修改為自己的即可 docker run -d --name mysql -p 3306:3306 -v /opt/mysql/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 mysql
啟動之后然后連接進行查看:
use mysql; select host,user,plugin from user;
方法二
啟動容器時啟動命令添加參數
# 添加如下參數 --default-authentication-plugin=mysql_native_password # 完整命令如下 docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql --default-authentication-plugin=mysql_native_password
啟動后驗證即可。
方法三
啟動容器之后使用sql進行修改
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
修改
# 進入容器 docker exec -it ******* bash # 登陸mysql mysql -u root -p use mysql; # 設置用戶root密碼策略為"mysql_native_password" ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'mysql'; # 刷新使之前操作立刻生效 flush privileges;
總結
到此這篇關于Docker中如何修改mysql8默認加密方式的文章就介紹到這了,更多相關Docker修改mysql8默認加密內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
深入探討:MySQL數據庫MyISAM與InnoDB存儲引擎的比較
本篇文章是對MySQL數據庫MyISAM與InnoDB存儲引擎的比較進行了詳細的分析介紹,需要的朋友參考下2013-06-06mysql ON DUPLICATE KEY UPDATE語句示例
本文介紹一下關于mysql中INSERT INTO… ON DUPLICATE KEY UPDATE用法2013-11-11MySQL rownumber SQL生成自增長序號使用介紹
MySQL 幾乎模擬了 Oracle,SQL Server等商業(yè)數據庫的大部分功能,函數。但很可惜,到目前的版本(5.1.33)為止,仍沒有實現ROWNUM這個功能2011-10-10