網(wǎng)站建設(shè)的具體過程網(wǎng)絡(luò)營銷崗位職責(zé)和任職要求
一、docker下載地址
下載地址
二、安裝docker完成
羅列一下docker常用命令
# 查看docker版本
docker --version# 拉取鏡像
docker pull 鏡像名# 查看當(dāng)前所有鏡像
docker images# 查看運行中的容器
docker ps -a
docker ps grep| 鏡像名#鏡像啟動操作:
sudo docker start 鏡像名
sudo docker stop 鏡像名
sudo docker restart 鏡像名# 刪除鏡像
docker rm 鏡像名/鏡像id# 進(jìn)入容器內(nèi)部
docker exec -it 鏡像名/鏡像id /bin/bash# 宿主機復(fù)制文件到鏡像內(nèi)部
docker cp 文件 容器id:/etc/
docker cp text.txt c10fec6c05d0:/etc/
三、安裝mysql
一、拉取鏡像
# 拉取鏡像
docker pull mysql# 或者
docker pull mysql:latest# 以上兩個命令是一致的,默認(rèn)拉取的就是 latest 版本的# 我們還可以用下面的命令來查看可用版本:
docker search mysql
二、查看鏡像
使用以下命令來查看是否已安裝了 mysql鏡像
docker images
三、運行鏡像
初始化時運行以下文件:
docker run --name mysql --restart=always --privileged=true \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf.d:/etc/mysql/conf.d \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:latest
修改容器配置文件:
# 查看正在運行的容器
docker ps
# 查看所有的docker容器
docker ps -a
進(jìn)入容器內(nèi)部:
docker exec -it mysql /bin/bash
查看本地是否有配置文件:
/usr/local/mysql/conf/my.cnf
如果沒有創(chuàng)建一個my.cnf:
vi my.cnf
[client]default-character-set=utf8mb4[mysql]default-character-set=utf8mb4[mysqld]# 設(shè)置東八區(qū)時區(qū)
default-time_zone = '+8:00'# 設(shè)置密碼驗證規(guī)則,default_authentication_plugin參數(shù)已被廢棄# 改為authentication_policy#default_authentication_plugin=mysql_native_password
authentication_policy=mysql_native_password# 限制導(dǎo)入和導(dǎo)出的數(shù)據(jù)目錄
# 為空,不限制導(dǎo)入到處的數(shù)據(jù)目錄;
# 指定目錄,必須從該目錄導(dǎo)入到處,且MySQL不會自動創(chuàng)建該目錄;
# 為NULL,禁止導(dǎo)入與導(dǎo)出功能
#secure_file_priv=/var/lib/mysql
secure_file_priv=init_connect='SET collation_connection = utf8mb4_0900_ai_ci'init_connect='SET NAMES utf8mb4'character-set-server=utf8mb4collation-server=utf8mb4_0900_ai_ciskip-character-set-client-handshakeskip-name-resolve
復(fù)制文件到容器內(nèi)部:
docker cp my.cnf 容器id:/etc/mysql/conf.d/
在進(jìn)入容器內(nèi)部:
docker exec -it mysql /bin/bash
exit 退出
四、設(shè)置docker啟動時啟動mysql
docker update mysql --restart=always
五、重啟mysql
docker restart mysql
四、授權(quán)訪問問題
一、進(jìn)入容器
docker exec -it mysql /bin/bash
此時我們使用mysql客戶端連接服務(wù)器是失敗的,因為默認(rèn)的root不具有遠(yuǎn)程連接的權(quán)限。
上面的密碼不要輸入,直接回車進(jìn)入。
二、選擇數(shù)據(jù)庫
show databases;
use mysql;
三、查看用戶連接情況
select host, user, plugin, authentication_string, password_expired from user;
四、修改密碼認(rèn)證方式
ALTER USER root@'%' IDENTIFIED WITH mysql_native_password BY '123456';ALTER USER root@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';-- 刷新權(quán)限
FLUSH PRIVILEGES;-- 退出
exit
五、重啟 再試試
docker restart mysql
六、錯誤解決
1、Unable to load authentication plugin ‘caching_sha2_password’.
修改兩個地方:
1、mysql5.6,升級到8.0,連接數(shù)據(jù)庫就報錯:,修改pom.xml中的 mysql-connector-java 版本為8.x.xx
2、修改項目中數(shù)據(jù)庫連接配置文件,改為 com.mysql.cj.jdbc.Driver