下面是mysql:8.0容器的配置
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
explicit_defaults_for_timestamp=true
innodb_flush_log_at_trx_commit=0
sync_binlog=0
# 设置最大连接数
max_connections=512
# 跳过对客户端进行DNS反向解析
skip-name-resolve
[mysql]
# 设置默认字符集
default-character-set=utf8
# 跳过对客户端进行DNS反向解析
skip-name-resolve
因为mariadb是基于mysql,就理所应当的将mysql:8.0的配置抄了过来给mariadb:10.5.8使用,尝试解决连接很慢的问题,结果却一直无法连接。
进入mariadb容器后,尝试使用:mysql -uroot 进入mysql,但却提示了一个错误:mysql: unknown option '--skip-name-resolve'
在搜索后找到了解决方法:unknown option '--skip-name-resolve'
将以下配置移除
[mysql]
skip-name-resolve
并添加以下配置
[mysqldump]
skip_name_resolve
成功解决每次连接都要十来秒的问题
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
explicit_defaults_for_timestamp=true
innodb_flush_log_at_trx_commit=0
sync_binlog=0
# 设置最大连接数
max_connections=512
[mysql]
# 设置默认字符集
default-character-set=utf8
在解决了mariadb的问题后,尝试修改了mysql:8.0的配置,结果发现mysql:8.0不添加skip-name-resolve也能非常快的连接。
mariadb:10.5.8的配置抄的mysql:8.0的,mysql:8.0的配置又是从mysql:5.7那抄的,skip-name-resolve是当时为了解决mysql:5.7连接慢而添加的。还是因为懒,直接照抄配置带来的问题。