1、用docker拉取mysql5.7
docker pull mysql:5.7
2、创建映射的目录,否则启动会报错
mkdir -p /usr/local/mysql/conf/conf.d
mkdir -p /usr/local/mysql/conf/mysql.conf.d
3、编辑my.cnf文件
vim /usr/local/mysql/conf/my.cnf
下面是文件内容
[client]
default-character-set=utf8[mysql]
default-character-set=utf8[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
skip-name-resolve
4、运行docker
docker run -p 3306:3306 --name mysql \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
运行完成以后,可以用以下命令来查看
#查看进程
docker ps -a# 如果没有启动,可以查看日志,找到具体失败的原因
docker logs -f mysql
5、设置外部连接访问
# 进入docker容器
docker exec -it mysql /bin/bash
#登录mysql
mysql -u root -puse mysql#如果需要,可以添加新的连接用户#创建一个用户和密码 设置访问权限为%
create user '用户名'@'%' identified with caching_sha2_password by '密码';#设置允许访问的数据库 这里是全部,用户制定了root,可以替换为需要的用户
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;#刷新
FLUSH PRIVILEGES;
#退出mysql
exit
#退出docker容器
exit
6、设置重启策略
# 配置mysql的自动启动
docker update mysql --restart=always#docker开机自动重启
systemctl enable docker