Docker 執行mysql8 0掛載資料卷

2021-10-23 19:46:38 字數 2161 閱讀 3900

# 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 新密碼 修改...