一、安装mysql 8
(1)下镜像
docker pull mysql:8.0.22
没网:导出、导入
docker save mysql:8.0.22 -o /home/mysql
docker load -i /home/mysql
(2)运行
-- 查看启动命令,配置选项,的列表
docker run -it --rm mysql:8.0.22 --verbose --help
docker run -d --name mysql \
-p 15003:3306 -e MYSQL_ROOT_PASSWORD=root \
--restart always mysql:8.0.22 \
--lower-case-table-names=1 \
--default-authentication-plugin=mysql_native_password
// 更新容器参数的命令: docker container update 参数 容器名,如:更新restart
docker container update --restart=always mysql
docker container update --restart=no mysql
// 更改时区
https://blog.csdn.net/why_still_confused/article/details/88936664
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
// 文件改炸了,就复制出来 改好再放回去
docker cp mysql:/etc/profile /home/profile
docker cp /home/profile mysql:/etc/profile
// 创建函数报错 1418
set global log_bin_trust_function_creators=1;
(3)改权限
1. 进容器
docker exec -it mysql /bin/bash
2. 本地登录
// 过一会再登,等mysql完全启动
mysql -u root -p
(输密码)
3. 建账号
// 一些版本要先输入: use mysql;
create user 'admin'@'%' identified by 'root';
给全部权限
// with grant option 允许传播权限,可省略
grant all on *.* to 'admin'@'%' with grant option;
密码不过期
ALTER USER 'admin'@'%' PASSWORD EXPIRE NEVER;
修改加密规则
ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
刷新生效
FLUSH PRIVILEGES;
输入exit,可以用来退出mysql命令行或容器