# docker從倉庫中拉取最新版的mysql映象,如果沒加標籤的話,預設獲取最新的版本
docker pull mysql
# 建立掛載的目錄,最好建立在home目錄下,否則可能會有管理員訪問許可權的問題,因為docker容器中是普通使用者
mkdir -p /home/docker/mysql/conf && mkdir -p /home/docker/mysql/
data
# 把mysql臨時執行起來,這時候mysql是還沒有掛載資料卷的,為了取出 my.cnf檔案
docker run --name mysqltest -p 3307:3306 -e mysql_root_password=root -d mysql
# 複製my.cnf檔案到本地目錄,取出之後之前的執行的mysql容器就可以刪除了
docker cp mysqltest:/etc/mysql/my.cnf /home/docker/mysql/conf
# 啟動mysql掛載資料卷,--restart=on-failure:3是指容器在未來出現異常退出(退出碼非0)的情況下迴圈重啟3次
docker run --name mysql -p 3306:3306 -e mysql_root_password=123456 -v /home/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /home/docker/mysql/
data:/
var/lib/mysql --restart=on-failure:3 -d mysql
# 如果遠端訪問不了,則進行以下操作,進入容器中,設定遠端訪問
docker exec -it mysql bash
# 登入mysql
mysql -uroot -p123456
# 切換到mysql資料庫
use mysql;
# 查詢user表,如果有兩個root使用者,刪除掉host=%的root資料,再修改localhost為%
select host, user, authentication_string, plugin from user;
delete from user where host="%" and user="root"
;update user set host = '%' where user = 'root'
;alter user 'root'@'%' identified with mysql_native_password by '123456'
;# 立即生效
flush privileges;
另一種方法,目錄建到usr下的
mkdir -pm 777 /usr/local/docker/mysql
mkdir -pm 777 /usr/local/docker/mysql/conf
mkdir -pm 777 /usr/local/docker/mysql/logs
mkdir -pm 777 /usr/local/docker/mysql/
data
mkdir -pm 777 /usr/local/docker/mysql/mysql-files
# 一樣複製my.cnf檔案到目錄下
docker cp mysql:/etc/my.cnf /usr/local/docker/mysql/conf/my.cnf
docker pull mysql
# --privileged=true:授予管理員許可權
docker run -p 3306:3306 --privileged=true --name mysql -v /usr/local/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/docker/mysql/conf:/etc/mysql -v /usr/local/docker/mysql/logs:/
var/log/mysql -v /usr/local/docker/mysql/mysql-files:/
var/lib/mysql-files -v /usr/local/docker/mysql/
data:/
var/lib/mysql -e mysql_root_password=123456 -d mysql
mysql8 0提示命令 MySQL8 0操作命令
mysql8.0版本和mysql5.0的加密規則不一樣,而現在的很多任務具等都是不支援的,我們這裡使用的是將mysql使用者登入的加密規則修改為mysql native password的方法來進行解決的。修改加密規則alter user root localhost identified by p...
使用docker安裝mysql8 0最新版
環境 確認docker安裝無誤 使用docker pull mysql 或者docker pull mysql 8.0 完成後,檢視映象是否存在 我這裡有三個映象,第乙個就是mysql最新版的映象。新建容器 docker run name mysql p 3306 3306 v etc timezo...
mysql8 0修改登入
在mysql8.0當中的密碼認證外掛程式以經由mysql native password改為caching sha2 password 修改密碼的方式也發生了改變,控制台修改密碼方法如下 use mysql alter user root localhost identified by 新密碼 修改...