#docker初始化容器:
docker run --name mysql8.0 -p 23306:3306 --privileged=true -v /home/geddon/data/app/docker/mysql8.0/data:/var/lib/mysql -v /home/geddon/data/app/docker/mysql8.0/conf.d:/etc/mysql/conf.d -v /home/geddon/data/app/docker/mysql8.0/conf/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0
#docker初始化后进入容器
docker exec -it mysql8.0 bash
#登陆mysql
mysql -uroot -p
use mysql;
select user,host from user;
CREATE USER 'root'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
commit;
#如果有了%的root,就修改
alter user 'root'@'%' identified by '123456' password expire never;
alter user 'root'@'%' identified with mysql_native_password by '123456';
my.cnf:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
user=mysql
lower_case_table_names=1
character-set-server=utf8
sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1500
#该值设置过小将导致单个记录超过限制后写入数据库失败,且后续记录写入也将失败
max_allowed_packet = 64M
#mysql在关闭一个交互的连接之前所要等待的秒数
interactive_timeout = 1200
#mysql在关闭一个非交互的连接之前所要等待的秒数
wait_timeout = 600
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql