75 lines
2.1 KiB
Markdown
75 lines
2.1 KiB
Markdown
---
|
||
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;
|
||
```
|
||
|
||

|
||
|
||
修改root密码
|
||
|
||
```sql
|
||
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
|
||
```
|
||
|
||
修改root密码后再次查询用户信息,这个时候就可以远程连接成功了
|
||
|
||

|
||
|
||
## 报错日志
|
||
|
||
这个是在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!
|
||
```
|
||
|
||
删除错误容器,重新启一个容器,把挂载配置文件目录的地方改一下就可以了 |