1.拉取镜像
docker pull mysql:5.7
2.新建一个 my.cnf 配置文件
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
max_allowed_packet = 20M
max_connections=1000
sql_mode = STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# 上面 sql_model 是为了避免出错 Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘information_schema.PROFILING.SEQ’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
3.run
# -v /home/mysql/data:/var/lib/mysql 挂载数据目录
# -v /home/mysql/mysql.cnf:/etc/mysql/conf.d/mysql.cnf 挂载配置文件
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -v /home/mysql/data:/var/lib/mysql -v /home/mysql/mysql.cnf:/etc/mysql/conf.d/mysql.cnf -p 3306:3306 -d mysql:5.7
进入容器中:
docker exec -it mysql /bin/bash
root@8a9672e8fa3a:/# mysql -uroot -p123456
配置远程链接(这是8.0版本):
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
配置远程链接(这是5.6以及5.7版本):
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";
flush privileges;
use mysql;
select user,host from user;
最后用Navicat链接试试