doc/笔记/Mysql57和80在Docker上的使用-mysql...

75 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Mysql5.7和8.0在Docker上的使用
date: 2023-05-06 15:36:48.48
updated: 2023-06-15 11:01:58.044
url: /archives/mysql57-8-for-docker
categories:
- Docker
- 数据库
tags:
- Docker
- DB
---
# Mysql5.7和8.0在Docker上的使用
8.0版本
> 可以跟上正确的版本号
```shell
docker run -p 3306:3306 --name mysql8-test \
-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
-v /usr/local/docker/mysql/conf:/etc/mysql/conf.d \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:latest
```
5.7版本
```shell
docker run -p 3306:3306 --name mysql5.7-test \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.42
```
区别在于配置文件的路径不同
8版本是`/etc/mysql/conf.d`
5.7版本是`/etc/mysql`
## 查看用户信息,修改密码
```sql
select host,user,plugin,authentication_string from mysql.user;
```
![](https://images.qweraq.com/images/202305061530712.webp)
修改root密码
```sql
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
```
修改root密码后再次查询用户信息这个时候就可以远程连接成功了
![](https://images.qweraq.com/images/202305061527513.webp)
## 报错日志
这个是在mysql8的镜像上启动容器在run命令的时候挂载配置文件使用了/etc/mysql报了以下错误
```sh
[Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.33-1.el8 started.
[ERROR] [Entrypoint]: mysqld failed while attempting to check config
command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.ixUqkEJ6Yi
mysqld: Can't read dir of '/etc/mysql/conf.d/' (OS errno 2 - No such file or directory)
mysqld: [ERROR] Stopped processing the 'includedir' directive in file /etc/my.cnf at line 36.
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!
```
删除错误容器,重新启一个容器,把挂载配置文件目录的地方改一下就可以了