Docker安装 mysql
MYSQL5.X
# 安装mysql:5.7,直接docker run 他会自动去官方镜想下载
# MYSQL_ROOT_PASSWORD=[的数据库密码,此处写的是123456
# -d 表示容器会在后台运行并不会把输出的结果 (STDOUT) 打印到宿主机上面(输出结果可以用 docker logs 查看);使用 -d 参数启动后会返回一个唯一的 id,也可以通过 docker container ls 命令来查看容器信息。
docker run --name mysql5.7 -p 主机端口号:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
# docker安装的mysql默认允许远程连接,可以使用Navicat等软件连接数据库
# 进入容器mysql
docker exec -it mysql5.7 bash
# 进入数据库 p后面跟你的密码
mysql -uroot -p123456
# 创建数据库(数据库名:solo;字符集utf8mb4;排序规则utf8mb4_general_ci)
create database solo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# 出现Query OK, 1 row affected (0.00 sec)表示成功
#退出数据库
exit
#退出容器
exit
MYSQL8.X
1.查找镜像:
docker search mysql
也可以去官网查看镜像tag,选择自己需要的版本,否则会下载最新版本:https://hub.docker.com/_/mysql/
2.下载镜像(如上一步,可以指定想要的版本,不指定则为最新版):
docker pull mysql
3.通过镜像创建容器并运行:
docker run -p 10001:3306 --name mysql8.0.25 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
docker run -p 3333:3306 --name 容器名称 -e MYSQL_ROOT_PASSWORD=登陆密码 -d 镜像名称
-p 10001:3306
:将容器的 3306 端口映射到主机的 10001 端口。-v -v $PWD/conf:/etc/mysql/conf.d
:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。-v $PWD/logs:/logs
:将主机当前目录下的 logs 目录挂载到容器的 /logs。-v $PWD/data:/var/lib/mysql
:将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。-e MYSQL_ROOT_PASSWORD=123456
:初始化 root 用户的密码。-d
表示容器会在后台运行并不会把输出的结果 (STDOUT) 打印到宿主机上面(输出结果可以用 docker logs 查看);使用 -d 参数启动后会返回一个唯一的 id,也可以通过 docker container ls 命令来查看容器信息。
此时,用navicat for mysql连接mysql发现报错:Client does not support authentication protocol requested by server。。。
解决方案:
进入容器:
docker exec -it 62349aa31687 /bin/bash
或者使用容器名字
docker exec -it mysql8.0.0 /bin/bash
进入mysql:
mysql -uroot -p
添加用户
CREATE USER '用户名' IDENTIFIED BY '密码';
授权:
mysql> GRANT ALL ON *.* TO 'root'@'%';
刷新权限:
mysql> flush privileges;
更新加密规则:
mysql> ALTER USER 'root'@'%' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER;
更新root用户密码:
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
刷新权限:
mysql> flush privileges;
4.修改配置文件
安装 vim 编辑器
apt-get update
apt-get install vim
进入配置文件
vi /etc/mysql/my.cnf
修改配置文件
# 设置 mysql8.0+ 的 group by 必须全字段问题
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# 时区差距 8 小时问题
default-time_zone = '+8:00'
标题:Docker安装 mysql
作者:mmzsblog
地址:https://www.mmzsblog.cn/articles/2022/10/17/1665970590652.html
如未加特殊说明,文章均为原创,转载必须注明出处。均采用CC BY-SA 4.0 协议!
本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。若本站转载文章遗漏了原文链接,请及时告知,我们将做删除处理!文章观点不代表本网站立场,如需处理请联系首页客服。• 网站转载须在文章起始位置标注作者及原文连接,否则保留追究法律责任的权利。
• 公众号转载请联系网站首页的微信号申请白名单!