docker安装mysql8.0.20过程

一、说明

mysql版本很多,这是8.0.20的安装过程,包括安装容器,挂载文件夹,远程访问。

二、拉取MySQL镜像

接下来,我们需要拉取MySQL的最新版本镜像。执行以下命令:

复制代码
docker pull mysql:8.0.20

可以使用以下命令查看已下载的MySQL镜像:

复制代码
docker images

三、启动

ini 复制代码
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20

四、复制

将容器内mysql的数据配置复制到本机,后面那个路径就是你想要映射的文件地址

bash 复制代码
docker cp mysql:/etc/mysql /root/mysql8.0.20

建议授权一下文件夹 防止权限问题异常, 进入到root目录

bash 复制代码
chmod 777 mysql8.0.20

五、删除旧容器

arduino 复制代码
docker stop mysql && docker rm mysql

六、启动MySQL容器

使用docker run命令启动MySQL容器,并将端口映射为13422,同时将数据和日志映射到本地磁盘:

bash 复制代码
docker run  -p 3306:3306  --name mysql8  --privileged=true  --restart unless-stopped  -v /root/mysql8.0.20/mysql:/etc/mysql  -v /root/mysql8.0.20/logs:/logs  -v /root/mysql8.0.20/data:/var/lib/mysql  -v /root/mysql8.0.20/mysql/mysql-files:/var/lib/mysql-files  -v /etc/localtime:/etc/localtime  -e MYSQL_ROOT_PASSWORD=123456  -d mysql:8.0.20

修改本地登录

进入容器并登录,你会发现登录不了

进入mysql8容器

bash 复制代码
docker exec -it mysql8 /bin/bash

登录

mysql -uroot -p ,输入密码

修改配置文件

如果发现登录不了. 输入 exit 先退出容器,如果上面本地容器登录正常就跳过这步

进入 /root/mysql8.0.20 文件, 编辑 my.cnf, 在[mysqld]增加一行 skip_grant_tables 此时mysql是无密码状态

复制代码
docker restart mysql8

七、配置远程访问

为了实现远程访问,我们需要进入MySQL容器并修改相关配置。

进入数据库

css 复制代码
mysql> use mysql  
Reading table information for completion of table and column names  
You can turn off this feature to get a quicker startup with -A

Database changed

查看表

sql 复制代码
mysql> show tables;  
+---------------------------+  
| Tables_in_mysql |  
+---------------------------+  
| columns_priv |  
| component |  
| db |  
| default_roles |  
| engine_cost |  
| func |  
| general_log |  
| global_grants |  
| gtid_executed |  
| help_category |  
| help_keyword |  
| help_relation |  
| help_topic |  
| innodb_index_stats |  
| innodb_table_stats |  
| password_history |  
| plugin |  
| procs_priv |  
| proxies_priv |  
| role_edges |  
| server_cost |  
| servers |  
| slave_master_info |  
| slave_relay_log_info |  
| slave_worker_info |  
| slow_log |  
| tables_priv |  
| time_zone |  
| time_zone_leap_second |  
| time_zone_name |  
| time_zone_transition |  
| time_zone_transition_type |  
| user |  
+---------------------------+  
33 rows in set (0.00 sec)

查看用户表

sql 复制代码
mysql> select host,user,plugin from user;  
+-----------+------------------+-----------------------+  
| host | user | plugin |  
+-----------+------------------+-----------------------+  
| localhost | mysql.infoschema | caching_sha2_password |  
| localhost | mysql.session | caching_sha2_password |  
| localhost | mysql.sys | caching_sha2_password |  
| localhost | root | caching_sha2_password |  
+-----------+------------------+-----------------------+  
4 rows in set (0.01 sec)

因为 caching_sha2_password ,所以使用密码登录是不行的,需要修改

  1. 修改密码认证方式

执行以下命令将root用户的密码认证方式改为'mysql_native_password'

sql 复制代码
ALTER USER 'root'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'pwd20250612';

可以自己设置密码

  1. 授予远程访问权限

执行以下命令授予root用户从任何主机远程访问的权限:

sql 复制代码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
  1. 刷新权限
ini 复制代码
FLUSH PRIVILEGES;
  1. 退出MySQL和容器
bash 复制代码
exit
exit

服务器防火墙设置

为了允许远程访问,需要在服务器上开放相应的端口。

测试远程连接

使用MySQL客户端工具连接成功

相关推荐
崔庆才丨静觅7 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60618 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了8 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅8 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅8 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅9 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment9 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅9 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊9 小时前
jwt介绍
前端
爱敲代码的小鱼9 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax