創建宿主機目錄
mkdir -p /opt/docker/mysql
cd /opt/docker/mysql
創建數據目錄,用于持久化數據庫文件
創建配置目錄,用于存放自定義的 my.cnf 文件
mkdir data
mkdir conf
mkdir logs
啟動命令
docker run -d \
--name mysql-server \
-p 30306:30306 \
-e MYSQL_ROOT_PASSWORD=123456 \
--restart=unless-stopped \
-v /opt/docker/mysql/data:/var/lib/mysql \
-v /opt/docker/mysql/conf:/etc/mysql/conf.d \
-v /opt/docker/mysql/logs:/var/log/mysql \
docker.xuanyuan.run/library/mysql:8.0.39
my.cnf文件內容
[mysqld]
# 設置3306端口
port=30306
# 設置mysql的安裝目錄
# basedir=D:\Program Files\MySQL\MySQL 8
# 設置mysql數據庫的數據的存放目錄,在安裝mysql-5.7.30-winx64.zip版本的時候,此配置不可添加,否則mysql將無法啟動。
# datadir=D:\Program Files\MySQL\MySQL 8\data
# 允許最大連接數
max_connections=2000
# 允許連接失敗的次數。這是為了防止有人從該主機試圖攻擊數據庫系統
max_connect_errors=10
# 服務端使用的字符集默認為UTF8
character-set-server=utf8mb4
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
# 默認使用“mysql_native_password”插件認證
default_authentication_plugin=mysql_native_password
# 關閉ssl
skip_ssl
# 配置時區
default-time_zone='+8:00'
# 解決MySQL錯誤-this is incompatible with sql_mode=only_full_group_by
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8mb4
[client]
# 設置mysql客戶端連接服務端時默認使用的端口
port=30306
default-character-set=utf8mb4
[mysqld]
explicit_defaults_for_timestamp=true