跳至主要內容

docker安装MySQL单机版

Mr.Twan大约 3 分钟主机运维dockermysql环境安装

运行

docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

Windows

docker run --name localMsql -p 23306:3306 -v D:/docker/mysql/libmysql:/var/lib/mysql -v D:/docker/mysql/etcmysql:/etc/mysql -e MYSQL_ROOT_PASSWORD=*********** -d mysql:5.7.39 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

忽略大小写

echo "\nlower_case_table_names=1\n" >>/etc/mysql/mysql.conf.d/mysqld.cnf

windows

1 进入文件夹编辑,重启

重启即可

完整的MySQL配置文件 config

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
# 允许 MyISAM 表的符号链接;8.0.26版本已弃用
symbolic-links=0
# 允许最大连接数
max_connections=1024
#任何给定 MySQL 用户帐户允许的最大同时连接数。值 0(默认值)表示 “没有限制。”
max_user_connections=0
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=100
#SELECT语句 的执行超时 ,以毫秒为单位。如果值为 0,则不启用超时
max_execution_time=5000
#如果设置为OFF,MySQL 会中止 SELECT可能需要很长时间才能执行的语句(即,优化器估计检查的行数超过 的值的语句 max_join_size)。WHERE当发布了不明智的声明时,这很有用。新连接的默认值为 ON,它允许所有 SELECT语句。
sql_big_selects=OFF
#查询返回数据行数最大值,超过此值则终止查询默认最大值18446744073709551615
max_join_size=10000
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
#是否对sql语句大小写敏感,1表示不敏感 注意此参数在8.0版本后必须在初始化数据库之前配置,即初始化后不允许修改此值
lower_case_table_names = 1
#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
#MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout = 1800
wait_timeout = 1800
#Metadata Lock最大时长(秒), 一般用于控制 alter操作的最大时长sine mysql5.6
#执行 DML操作时除了增加innodb事务锁外还增加Metadata Lock,其他alter(DDL)session将阻塞
lock_wait_timeout = 3600
#内部内存临时表的最大值。
#比如大数据量的group by ,order by时可能用到临时表,
#超过了这个值将写入磁盘,系统IO压力增大
tmp_table_size = 64M
max_heap_table_size = 64M
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
#mysql socket连接使用 
[client]
port=3306
#配合[mysqld] 下的socket
socket=/usr/local/mysql/data/mysql.sock

上次编辑于:
贡献者: twan,tuan