<tfoot id='Aqllk'></tfoot>
    1. <legend id='Aqllk'><style id='Aqllk'><dir id='Aqllk'><q id='Aqllk'></q></dir></style></legend>

        <bdo id='Aqllk'></bdo><ul id='Aqllk'></ul>
    2. <i id='Aqllk'><tr id='Aqllk'><dt id='Aqllk'><q id='Aqllk'><span id='Aqllk'><b id='Aqllk'><form id='Aqllk'><ins id='Aqllk'></ins><ul id='Aqllk'></ul><sub id='Aqllk'></sub></form><legend id='Aqllk'></legend><bdo id='Aqllk'><pre id='Aqllk'><center id='Aqllk'></center></pre></bdo></b><th id='Aqllk'></th></span></q></dt></tr></i><div id='Aqllk'><tfoot id='Aqllk'></tfoot><dl id='Aqllk'><fieldset id='Aqllk'></fieldset></dl></div>

      1. <small id='Aqllk'></small><noframes id='Aqllk'>

      2. docker部署mysql后无法连接的解决方式

        时间:2023-12-07

          <i id='s2SEc'><tr id='s2SEc'><dt id='s2SEc'><q id='s2SEc'><span id='s2SEc'><b id='s2SEc'><form id='s2SEc'><ins id='s2SEc'></ins><ul id='s2SEc'></ul><sub id='s2SEc'></sub></form><legend id='s2SEc'></legend><bdo id='s2SEc'><pre id='s2SEc'><center id='s2SEc'></center></pre></bdo></b><th id='s2SEc'></th></span></q></dt></tr></i><div id='s2SEc'><tfoot id='s2SEc'></tfoot><dl id='s2SEc'><fieldset id='s2SEc'></fieldset></dl></div>

          <small id='s2SEc'></small><noframes id='s2SEc'>

        1. <legend id='s2SEc'><style id='s2SEc'><dir id='s2SEc'><q id='s2SEc'></q></dir></style></legend>

            <tbody id='s2SEc'></tbody>
              <bdo id='s2SEc'></bdo><ul id='s2SEc'></ul>

              1. <tfoot id='s2SEc'></tfoot>
                • 下面是关于“docker部署mysql后无法连接的解决方式”的完整攻略。

                  1. 前置知识

                  在进行Docker部署MySQL之前,我们需要掌握以下知识:

                  1. Docker和Docker Compose的基本使用方法;
                  2. 对于MySQL的基本配置和运行原理有一定的了解。

                  2. Docker部署MySQL

                  在Docker中部署MySQL的方式有很多,本文介绍基本的使用Docker Compose进行MySQL部署的方法。首先我们需要创建一个Docker Compose文件。

                  # docker-compose.yml
                  version: '3'
                  services:
                    mysql:
                      image: mysql:5.7
                      container_name: mysql
                      restart: always
                      environment:
                        MYSQL_ROOT_PASSWORD: example
                      volumes:
                        - ./mysql-data:/var/lib/mysql
                      ports:
                        - "3306:3306"
                  

                  我们可以通过上述配置创建一个MySQL容器,并对其进行配置。其中,我们将MySQL的root用户的密码设置为"example",并将MySQL数据存储在主机的./mysql-data目录下。

                  然后使用以下命令启动容器:

                  $ docker-compose up -d
                  

                  3. 解决无法连接现象

                  当容器启动完成后,我们通过下述命令检查容器是否已经启动:

                  $ docker-compose ps
                  

                  输出结果如下:

                    Name                      Command                 State            Ports
                  ------------------------------------------------------------------------------------
                  mysql_1   docker-entrypoint.sh mysqld      Up      0.0.0.0:3306->3306/tcp
                  

                  可以看到MySQL容器已经成功启动并且绑定了主机的3306端口。现在我们可以使用以下命令连接MySQL容器:

                  $ mysql -h127.0.0.1 -uroot -pexample
                  

                  上述命令将尝试使用root账户和刚刚设置的密码连接127.0.0.1上的MySQL容器。

                  如果连接失败,则说明该容器中的MySQL服务无法正常工作。我们需要进一步检查MySQL的日志,以确定问题所在。

                  # 获取容器ID
                  $ docker ps
                  
                  # 查看容器日志
                  $ docker logs <CONTAINER_ID>
                  

                  如果我们在MySQL的日志中看到如下错误:

                  [ERROR] Could not create unix socket lock file /var/run/mysqld/mysqld.sock.lock
                  [ERROR] Unable to setup unix socket lock file.
                  

                  则意味着/usr/run/mysqld目录不存在。我们可以在Docker Compose文件中加入下述配置行:

                  volumes:
                    - ./mysql-data:/var/lib/mysql
                    - ./var-run-mysqld:/var/run/mysqld # 新加
                  

                  然后重新启动容器即可:

                  $ docker-compose restart
                  

                  4. 示例说明

                  示例1

                  如果我们想要在容器外部直接使用MySQL客户端连接到容器内的MySQL服务,就需要将容器的3306端口通过主机端口暴露出来。可以在Docker Compose文件中增加一个端口映射的配置:

                  ports:
                    - "23306:3306"
                  

                  然后用以下命令连接到MySQL容器:

                  $ mysql -h127.0.0.1 -P23306 -uroot -pexample
                  

                  上述命令将会尝试用root账户和密码example连接到宿主机ip地址为127.0.0.1,端口为23306的MySQL容器。

                  示例2

                  有时我们会发现使用navicat等客户端工具无法连接到MySQL,而通过命令行却可以。此时需要改变我们的连接方式。例如,我们要将使用navicat连接的时候,将localhost替换为本地ip地址,即:127.0.0.1,以此来解决无法连接的问题。

                  经过以上步骤,我们就可以使用Docker部署MySQL,并解决无法连接的问题了。

                  上一篇:Ubuntu 20.04 安装和配置MySql5.7的详细教程 下一篇:Ruoyi从mysql切换到postgresql的几个踩坑实战

                  相关文章

                  <i id='eV6iL'><tr id='eV6iL'><dt id='eV6iL'><q id='eV6iL'><span id='eV6iL'><b id='eV6iL'><form id='eV6iL'><ins id='eV6iL'></ins><ul id='eV6iL'></ul><sub id='eV6iL'></sub></form><legend id='eV6iL'></legend><bdo id='eV6iL'><pre id='eV6iL'><center id='eV6iL'></center></pre></bdo></b><th id='eV6iL'></th></span></q></dt></tr></i><div id='eV6iL'><tfoot id='eV6iL'></tfoot><dl id='eV6iL'><fieldset id='eV6iL'></fieldset></dl></div>
                  <tfoot id='eV6iL'></tfoot>
                • <legend id='eV6iL'><style id='eV6iL'><dir id='eV6iL'><q id='eV6iL'></q></dir></style></legend>

                    1. <small id='eV6iL'></small><noframes id='eV6iL'>

                        <bdo id='eV6iL'></bdo><ul id='eV6iL'></ul>