docker-compose.yml
version: "3"
mysql:
image: mysql:5.7.26
container_name: mysql
restart: always
command: "mysqld --skip-name-resolve"
environment:
- TZ=Asia/Shanghai
- MYSQL_ROOT_PASSWORD=junpzx@2023
volumes:
- /etc/localtime:/etc/localtime:ro
- ./workspace/database/mysql/data:/var/lib/mysql/data
- ./workspace/database/mysql/my.cnf:/etc/mysql/my.cnf
- ./workspace/database/mysql/init.sql:/docker-entrypoint-initdb.d/init.sql
- ./workspace/database/mysql/sql:/opt/sql
ports:
- "3306:3306"
my.conf
[client]
port = 3306
socket = /var/lib/mysql/data/mysql.sock
[mysqld]
# 针对5.7版本执行group by字句出错问题解决
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
# 一般配置选项
basedir = /var/lib/mysql
datadir = /var/lib/mysql/data
port = 3306
socket = /var/lib/mysql/data/mysql.sock
lc-messages-dir = /usr/share/mysql # 务必配置此项,否则执行sql出错时,只能显示错误代码而不显示具体错误消息
character-set-server=utf8mb4
back_log = 300
max_connections = 3000
max_connect_errors = 50
table_open_cache = 4096
max_allowed_packet = 32M
#binlog_cache_size = 4M
max_heap_table_size = 128M
read_rnd_buffer_size = 16M
sort_buffer_size = 16M
join_buffer_size = 16M
thread_cache_size = 16
query_cache_size = 64M
query_cache_limit = 4M
ft_min_word_len = 8
thread_stack = 512K
#tx_isolation = READ-COMMITTED
tmp_table_size = 64M
#log-bin=mysql-bin
long_query_time = 6
server_id=1
innodb_buffer_pool_size = 1024M
innodb_thread_concurrency = 16
innodb_log_buffer_size = 16M
wait_timeout= 31536000
interactive_timeout= 31536000
lower_case_table_names = 1
init.sql
create database `junpzx-database-test` default character set utf8mb4 collate utf8mb4_general_ci;
use `junpzx-database-test`;
source /opt/sqljunpzx-database-test.sql;
create database `junpzx-database-test2` default character set utf8mb4 collate utf8mb4_general_ci;
use `junpzx-database-test2`;
source /opt/sql/junpzx-database-test2.sql;