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

2.1 KiB
Raw Blame History

title date updated url categories tags
Mysql5.7和8.0在Docker上的使用 2023-05-06 15:36:48.48 2023-06-15 11:01:58.044 /archives/mysql57-8-for-docker
Docker
数据库
Docker
DB

Mysql5.7和8.0在Docker上的使用

8.0版本

可以跟上正确的版本号

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版本

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

查看用户信息,修改密码

select host,user,plugin,authentication_string from mysql.user; 

修改root密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 

修改root密码后再次查询用户信息这个时候就可以远程连接成功了

报错日志

这个是在mysql8的镜像上启动容器在run命令的时候挂载配置文件使用了/etc/mysql报了以下错误

[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!

删除错误容器,重新启一个容器,把挂载配置文件目录的地方改一下就可以了