Docker(43)- 安裝 Mysql,數據持久化


思考

MySQL的數據持久化的問題

 

搜索 mysql 鏡像

docker search docker

 

官方鏡像介紹地址

https://hub.docker.com/_/mysql?tab=description

 

pull mysql 鏡像

# 最新版
docker pull mysql
docker pull mysql:latest

# 8
docker pull mysql:8.0

# 5.7
docker pull mysql:5.7

# 5.6
docker pull mysql:5.6

更多鏡像版本可參考:https://hub.docker.com/_/mysql?tab=tags

 

運行容器

最簡單

  • 需要指定容器名和初始 root 密碼
  • -e 是指定環境變量,所以 MYSQL_ROOT_PASSWORD 是一個環境變量
docker run --name mysql_name -e MYSQL_ROOT_PASSWORD=my_password -d mysql:tag

 

掛載 Mysql 默認配置的目錄

docker run --name mysql_name -v /user/local/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my_password -d mysql:tag

  

將所有表的默認編碼和排序規則更改為使用 UTF-8 (utf8mb4)

docker run --name mysql_name -e MYSQL_ROOT_PASSWORD=my_password -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

 

如果想查看所有可用選項的完整列表

docker run -it --rm mysql:tag --verbose --help

 

掛載 Mysql 存放數據的目錄

docker run --name mysql_name -v /user/local/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my_password -d mysql:tag

 

更多環境變量

  • 上面的栗子講了 MYSQL_ROOT_PASSWORD 是環境變量
  • docker run mysql 時,可以通過在 docker run 命令行中傳入一個或多個環境變量來調整 MySQL 實例的配置

 

MYSQL_ROOT_PASSWORD

必需的,它指定將為 MySQL root 超級用戶帳戶設置的密碼 

 

MYSQL_DATABASE

  • 可選的,允許指定要在 docker run mysql 時創建的數據庫的名稱
  • 如果提供了用戶/密碼,則該用戶將被授予對該數據庫的超級用戶訪問權限(對應於 GRANT ALL)

 

MYSQL_USER, MYSQL_PASSWORD

  • 可選的,結合使用來創建新用戶和密碼
  • 該用戶將被授予對 MYSQL_DATABASE 變量指定的數據庫的超級用戶權限
  • 創建用戶需要這兩個變量

 

MYSQL_ALLOW_EMPTY_PASSWORD

這是一個可選變量,設置為非空值,如 yes,允許使用 root 用戶的空白密碼啟動容器

 

MYSQL_RANDOM_ROOT_PASSWORD

  • 可選的,設置為非空值,如 yes,為 root 用戶生成隨機初始密碼
  • 生成的 root 密碼將打印到 stdout

 

MYSQL_ONETIME_PASSWORD

  • 初始化完成后,將 root(不是 MYSQL_USER 中指定的用戶!)用戶設置為過期,強制在首次登錄時更改密碼
  • 任何非空值都將激活此設置

 

MYSQL_INITDB_SKIP_TZINFO

  • 默認情況下,入口點腳本會自動加載 CONVERT_TZ() 函數所需的時區數據
  • 如果不需要,任何非空值都會禁用時區加載


免責聲明!

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



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