docker 安装mysql

    技术2026-03-30  13

    docker 安装mysql

    拉取mysql镜像navicat连接Mysql服务连接mysql服务时报了如下错误:解决办法:

    拉取mysql镜像

    从远程镜像源中获取最新的mysql镜像

    $ docker pull mysql:latest

    查看本地镜像

    $ docker images

    运行mysql容器

    $ docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

    查看容器运行状态

    $ docker ps

    可以看到容器已经处于运行状态,现在通过navicat应该是可以连上mysql服务。

    navicat连接Mysql服务

    连接mysql服务时报了如下错误:

    Authentication plugin ‘caching_sha2_password’ cannot be loaded

    解决办法:

    首先查询mysql user表

    mysql> use mysql; mysql> select user,host,plugin,authentication_string from user;

    修改root用户

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

    按道理修改完是可以连接上的(上一步骤是修改过后的root用户信息),但是并没有。折腾了老半天,发现我查出root用户有两条数据,如上图的第一条和最后一条,差别在于host字段一个是“%”,另一个是“localhost”,查阅相关资料知道“%”代表其他ip访问mysql服务。我是通过vmware创建的虚拟机,在虚拟机中运行mysql的服务,然后是通过主机的navicat连接,所以这里需要把两个root用户的密码加密方式均改掉,如下:

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

    改完后,完美连接!

    Processed: 0.010, SQL: 10