使用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 版本而异。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值