溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用 docker-compose 運行 MySQL的方法

發(fā)布時間:2020-09-09 16:06:34 來源:腳本之家 閱讀:181 作者:浮云Cloud 欄目:服務(wù)器

目錄結(jié)構(gòu)

.
│ .env
│ docker-compose.yml
│
└─mysql
 ├─config
 │ my.cnf
 │
 └─data

mysql 目錄下的 data 為數(shù)據(jù)目錄,mysql 的數(shù)據(jù)表、二進制日志文件就在這里。.env 文件包含了一些變量,這些變量可以在 docker-compose.yml 文件中通過 ${variable_name} 來引用。

當(dāng)然也可以把 mysql 的目錄放到其它地方,這里圖個方便,直接放在 yml 文件同級目錄了。

.env 文件

MYSQL_ROOT_PASSWORD=root
MYSQL_ROOT_HOST=%
MYSQL_DIR=./mysql

MySQL 配置文件 my.cnf

[mysqld]
character-set-server=utf8mb4
default-time-zone='+8:00'
innodb_rollback_on_timeout='ON'
max_connections=500
innodb_lock_wait_timeout=500

如果使用默認(rèn)配置,這個文件可以省略。

docker-compose.yml

version: '3'

services:

 mysql-db:
 container_name: mysql-docker # 指定容器的名稱
 image: mysql:8.0   # 指定鏡像和版本
 ports:
 - "3306:3306"
 environment:
 MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
 MYSQL_ROOT_HOST: ${MYSQL_ROOT_HOST}
 volumes:
 - "${MYSQL_DIR}/data:/var/lib/mysql"  # 掛載數(shù)據(jù)目錄
 - "${MYSQL_DIR}/config:/etc/mysql/conf.d" # 掛載配置文件目錄

Environment 變量

  • MYSQL_ROOT_PASSWORD :這個不用解釋,root 用戶的密碼。
  • MYSQL_USER,MYSQL_PASSWORD :這兩個變量為可選,創(chuàng)建一個新用戶,這個用戶在 MYSQL_DATABASE 變量指定的數(shù)據(jù)庫上擁有超級用戶權(quán)限。
  • MYSQL_DATABASE :指定一個數(shù)據(jù)庫,在容器啟動時創(chuàng)建。
  • MYSQL_ALLOW_EMPTY_PASSWORD :設(shè)置為 yes 允許 root 用戶的密碼為空。(不推薦)
  • MYSQL_RANDOM_ROOT_PASSWORD :設(shè)置為 yes 將在容器啟動時為 root 用戶生成一個隨機的密碼,密碼會顯示到標(biāo)準(zhǔn)輸出流(GENERATED ROOT PASSWORD:......)。
  • MYSQL_ONETIME_PASSWORD :字面意思就是一次性密碼,為 root 用戶設(shè)置,第一次登錄后必須修改密碼(僅支持 5.6 以上的版本)。

運行容器

在 docker-compose.yml 目錄下執(zhí)行:

> docker-compose up

如果要在后臺運行,使用 docker-compose up -d 。

停止容器:

> docker-compose down

如果是前臺運行的,使用:Ctrl + C 停止。這兩種方式在停止后都會刪除容器,下次啟動必須使用 up 命令。

停止但不刪除容器:

> docker-compose stop

使用 stop 停止后,再次啟動使用 start 命令即可。

總結(jié)

以上所述是小編給大家介紹的使用 docker-compose 運行 MySQL的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對億速云網(wǎng)站的支持!如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI