Docker 搭建 MySql8


安裝 Mysql8 鏡像

docker pull mysql

運行 Mysql8 鏡像生成容器

docker run \
    -p 23306:3306 \
    -e MYSQL_ROOT_PASSWORD=localDocker@mysql \
    -v /home/docker/mysql/data:/var/lib/mysql:rw \
    -v /home/docker/mysql/log:/var/log/mysql:rw \
    -v /home/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf:rw \
    -v /home/docker/mysql/mysql-files:/var/lib/mysql-files/ \
    --name mysql \
    --restart=always \
    -d mysql

登錄 Docker 中的 Mysql 存在兩種情況

第一種

  1. 使用命令 docker exec -it mysql /bin/bash 進入容器
  2. 使用命令 mysql -uroot -p 按下 enter 再按 enter 直接登錄到 Mysql 里面去,因為里面 root 用戶對應的密碼是空的
  3. 給 root 用戶設置密碼
# 修改用戶對應的密碼
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
# 刷新權限
flush privileges;
  1. 需要遠程連接時,執行如下命令
CREATE USER 'root'@'%' IDENTIFIED BY '用戶密碼';
flush privileges;
  1. 創建出來的用戶是沒有任何創建數據庫權限的,需要執行如下命令進行授權
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;

第二種

  1. 在執行生成 mysql 容器的時候,我們設置了 mysql 初始密碼的,使用那個密碼,即可直接登錄到 mysql

說明一下 Mysql 的配置 my.cnf

[mysqld]
# 禁止表名大小寫驗證
lower_case_table_names=1
# 禁用dns解析,所以在mysql的授權表中就不能使用主機名了,只能使用IP
skip-name-resolve
# mysql8的安全機制升級而需要修改的配置,不配置的話將無法登錄管理
default_authentication_plugin= mysql_native_password


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM