2.1 KiB
2.1 KiB
| 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 |
|
|
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!
删除错误容器,重新启一个容器,把挂载配置文件目录的地方改一下就可以了

