当前位置: 首页 > news >正文

使用Docker操作MySQL

在Docker中操作MySQL可以简化数据库的部署和管理过程。以下是详细的步骤,包括如何拉取MySQL镜像、创建容器以及配置远程访问权限。

拉取MySQL镜像

首先,使用以下命令从Docker Hub拉取MySQL镜像:

docker pull mysql

你也可以指定版本,例如拉取MySQL 5.7版本:

docker pull mysql:5.7

拉取完成后,可以使用以下命令查看本地镜像:

docker images

创建MySQL容器

使用以下命令创建并运行MySQL容器:

docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --name my_mysql mysql

-d:后台运行容器

-p:端口映射,将容器的3306端口映射到主机的3307端口

-e:设置环境变量,这里设置MySQL的root用户密码为123456

–name:容器名称

mysql:使用的镜像名称

创建完成后,可以使用以下命令查看运行中的容器:

docker ps

进入容器并测试

使用以下命令进入容器内部:

docker exec -it my_mysql bash

进入容器后,可以使用以下命令登录MySQL:

mysql -uroot -p123456

配置远程访问权限

为了允许远程访问MySQL,需要进行以下配置:

进入MySQL容器:

docker exec -it my_mysql bash

登录MySQL:

mysql -uroot -p123456

修改root用户的权限,允许远程访问:

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

刷新权限:

FLUSH PRIVILEGES;

解决 MySQL 插件 ‘mysql_native_password’ 未加载错误

当你在 MySQL 中遇到 ERROR 1524 (HY000): Plugin ‘mysql_native_password’ is not loaded 错误时,表示 mysql_native_password 插件未加载或不可用。这通常发生在从 MySQL 5.7 升级到 MySQL 8.0 时,因为 MySQL 8.0 默认使用更安全的认证插件 caching_sha2_password

示例

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword';

错误信息:

ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded

解决方法

  1. 使用默认的认证插件

如果没有特别需要使用 mysql_native_password,建议使用 MySQL 8.0 默认的 caching_sha2_password。

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'YourPassword';
  1. 修改配置文件

如果确实需要使用 mysql_native_password,可以在 MySQL 的配置文件中添加以下设置,然后重启 MySQL 服务。 Linux: /etc/my.cnf 或 /etc/mysql/my.cnf Windows: my.ini

default_authentication_plugin=mysql_native_password

重启 MySQL 服务后,重新设置用户密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword';
  1. 手动加载插件

如果插件未加载,可以尝试手动加载。

INSTALL PLUGIN mysql_native_password SONAME 'auth_socket.so';

请注意,替换 ‘auth_socket.so’ 为实际的插件文件名,这可能因操作系统和 MySQL 版本而异。

http://www.xdnf.cn/news/213571.html

相关文章:

  • 从零搭建体育比分网站:技术选型与API调用实战(附完整源码)
  • Java中final关键字的作用?
  • Jupyter notebook快捷键
  • 【运维】掌控系统脉搏:用 Python 和 psutil打造高效运维监控工具
  • Qt的WindowFlags窗口怎么选?
  • 第六章 QT基础:7、Qt中多线程的使用
  • Knife4j 接口文档添加登录验证流程分析
  • 天能资管(SkyAi):全球布局,领航资管新纪元
  • 单片机-89C51部分:9、串行口通讯
  • TTL、RS-232 和 RS-485 串行通信电平标准区别解析
  • 【C语言练习】010. 理解函数参数的传递方式
  • 深度解析Qwen3:性能实测对标Gemini 2.5 Pro?开源大模型新标杆的部署挑战与机遇
  • 牛客周赛 Round 91
  • k8s 学习记录 (六)_Pod 污点和容忍性详解
  • 日常开发小Tips:后端返回带颜色的字段给前端
  • 数据结构:实验7.3Huffman树与Huffman编码
  • 【18】爬虫神器 Pyppeteer 的使用
  • 信息科技伦理与道德3-4:面临挑战
  • 宾馆一次性拖鞋很重要,扬州卓韵酒店用品详细介绍其材质与卫生标准
  • 论文导读 - 基于特征融合的电子鼻多任务深度学习模型研究
  • 【无基础】小白解决Docker pull时报错:https://registry-1.docker.io/v2/
  • Html 2
  • verl - 火山引擎大语言模型强化学习训练库
  • Wi-SUN与LoRa和NB-IoT通信技术的对比
  • AI+零售:智能推荐、无人店与供应链管理的未来
  • 基于STM32、HAL库的DS28E15P安全验证及加密芯片驱动程序设计
  • Kafka 消息可靠性深度解析:大流量与小流量场景下的设计哲学
  • [逆向工程]如何理解小端序?逆向工程中的字节序陷阱与实战解析
  • 搜索引擎中的检索模型(布尔模型、向量空间模型、概率模型、语言模型)
  • 贵族运动项目有哪些·棒球1号位