Docker安装MySQL8版本

安装

下拉镜像

docker pull mysql:8.0.20

查看镜像

docker images

在这里插入图片描述
出现了就是下载成功

启动镜像

docker run -d -p 3306:3306 --restart=always \
  -v /docker/mysql/logs:/var/log/mysql \
  -v /docker/mysql/data:/var/lib/mysql \
  -v /docker/mysql/conf:/etc/mysql \
  -v /docker/mysql/files:/var/lib/mysql-files \  
  -e MYSQL_ROOT_PASSWORD=root \
  --name mysql mysql:8.0.20
-v /docker/mysql/files:/var/lib/mysql-files \ 

如果没有添加这行,启动会报错

mysqld: Error on realpath() on '/var/lib/mysql-files' (Error 2 - No such file or directory)
2023-12-16T06:41:05.834410Z 0 [ERROR] [MY-010095] [Server] Failed to access directory for --secure-file-priv. Please make sure that directory exists and is accessible by MySQL Server. Supplied value : /var/lib/mysql-files
[root@maoslv conf.d]# docker ps
CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                                                                                                                                                                                                                               NAMES
4fed5f6c226a   mysql:8.0.20      "docker-entrypoint.s…"   25 minutes ago   Up 10 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                                                                                                                                                                                mysql

这样就启动成功了

问题

连接数据库的时候出现错误

在这里插入图片描述

再三确认密码没有错,进入容器内部也是同样的错误

[root@maoslv conf.d]# docker exec -it mysql /bin/bash
root@4fed5f6c226a:/# mysql -uroot -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

解决办法

有映射的从宿主机改也可以,我这边直接在容器内部改
找到/etc/mysql/conf.d/my.cnf(没有的话自己创建一个)
在文件里面加上这一句话,跳过密码登录

skip-grant-tables

然后出去重启MySQL

docker restart mysql

重启完重新进入MySQL内部

root@4fed5f6c226a:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 8.0.20 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

这样就可以登录进来
修改密码前记得刷新一下权限,不然可能会提示修改密码错误

flush privileges; #刷新权限
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; #修改密码
flush privileges; #修改完记得再刷新一下

记得设置运行root远程连接

use mysql #切换数据库
update user set host='%' where user='root'; #设置远程连接
flush privileges; #刷新一下权限

退出MySQL的时候记得去/etc/mysql/conf.d/my.cnf中skip-grant-tables删除!!!
退出MySQL的时候记得去/etc/mysql/conf.d/my.cnf中skip-grant-tables删除!!!
退出MySQL的时候记得去/etc/mysql/conf.d/my.cnf中skip-grant-tables删除!!!

重启MySQL

docker restart mysql

连接成功

在这里插入图片描述

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值