Docker 部署 mysql 5.7

阳光下的行者發表於2024-11-26

一、準備工作
1.開啟目錄

cd /usr/local/docker/

2.建立資料夾

mkdir mysql

3.開啟資料夾

cd mysql/

二、建立掛載目錄
1.建立資料掛載目錄

mkdir data

2.建立配置檔案目錄

mkdir config

3.開啟config

cd config/

4.編寫配置檔案

vim my.cnf

貼上配置

[client]
# 埠號
port=3306

[mysql]
no-beep
default-character-set=utf8mb4

[mysqld]
# 埠號
port=3306
# 資料目錄
datadir=/var/lib/mysql
# 新模式或表時將使用的預設字符集
character-set-server=utf8mb4
# 預設儲存引擎
default-storage-engine=INNODB
# 將 SQL 模式設定為嚴格
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
# 最大連線數
max_connections=1024
# 表快取
table_open_cache=2000
# 表記憶體
tmp_table_size=16M
# 執行緒快取
thread_cache_size=10
# 設定大小寫不敏感
lower_case_table_names=1

# myisam設定
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=8M
key_buffer_size=8M
read_buffer_size=0
read_rnd_buffer_size=0

# innodb設定
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=8M
innodb_log_file_size=48M
innodb_thread_concurrency=33
innodb_autoextend_increment=64
innodb_buffer_pool_instances=8
innodb_concurrency_tickets=5000
innodb_old_blocks_time=1000
innodb_open_files=300
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0

# 其他設定
back_log=80
flush_time=0
join_buffer_size=256K
max_allowed_packet=4M
max_connect_errors=100
open_files_limit=4161
sort_buffer_size=256K
table_definition_cache=1400
binlog_row_event_max_size=8K
sync_master_info=10000
sync_relay_log=10000
sync_relay_log_info=10000

5.下載映象

docker pull mysql:5.7

檢查映象

docker images

三、編寫指令碼
1.開啟目錄

cd /usr/local/docker/mysql/

2.編寫指令碼

vim startMysql.sh

指令碼內容

docker run -d \
--privileged=true \
--name mysql57 \
-p 3306:3306 \
--restart=always \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-v /usr/local/docker/mysql/config/my.cnf:/etc/mysql/my.cnf \
-e MYSQL_ROOT_PASSWORD=root mysql:5.7 \

3.許可權賦予

chmod -R 777 startMysql.sh

4.啟動指令碼
./startMysql.sh

5.檢視
docker ps

docker ps -a

6.伺服器開啟埠


注:本地虛擬機器不需要

相關文章