Docker Mysql:是什么原因导致SQLSTATE [HY000] [2002]连接超时?

这些芦苇

例如,在Docker中运行查询时,出现此错误

php artisan clear-compiled
In Connection.php line 664:

  SQLSTATE[HY000] [2002] Connection timed out (SQL: select `id`, `name` from
   `users` where `profile_is_public` = 1 and `status` = 1 order by `created_at
 ` desc limit 6) 

连接超时错误的常见情况是什么?我的配置有什么问题?也许与mysql套接字有关?如何找出?

我想我输入了正确的用户名和密码。

docker-compose.yml

version: '3'

services:
  web:
    build: ./webserver
    ports:
      - "80:80"
      - "443:443"
    volumes:

      - //docker/dockertest/webserver/app:/var/www/vhosts/app
    links:
      - db:db

    command:
       - /usr/local/bin/apache2_install_composer_dependencies.sh

  db:
    image: mysql:8.0
    container_name: db
    ports:
      - "3306:3306"
    command: --default-authentication-plugin=mysql_native_password
    environment:

      MYSQL_DATABASE: myDb
      MYSQL_USER: test
      MYSQL_PASSWORD: test
      MYSQL_ROOT_PASSWORD: test
    volumes:
      - //docker/dockertest/install/db_dump:/docker-entrypoint-initdb.d
      - persistent:/var/lib/mysql
    networks:
      - default

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    links:
      - db:db
    ports:
      - 8000:80
    environment:
      MYSQL_USER: test
      MYSQL_PASSWORD: test
      MYSQL_ROOT_PASSWORD: test



volumes:
  persistent:

拉拉韦尔 .env

DB_CONNECTION=mysql
#host points to Docker container
DB_HOST=db
DB_PORT=3306
DB_DATABASE=myDb
DB_USERNAME=root
DB_PASSWORD=test

更新资料

像这样的简单PHP脚本有效,但是Laravel不能(仍然相同的错误)

$servername = "db"; $username = "root"; $password = "test"; $dbname = "myDb";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * FROM Person";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
    }
} 
$conn->close();
这些芦苇

原来我config/database.php为DB_HOST输入了错误的env变量名(就像'host'=> env('DB_HOST_1', 'some ip'))...起初没有注意到。现在可以了

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SQLSTATE [HY000] [2002]在laravel和docker设置中拒绝连接

SQLSTATE [HY000] [2002]在Docker中运行多个laravel项目时,连接被拒绝

61SQLSTATE[HY000] [2002] Docker 容器 PHP/Apache 中的连接被拒绝

Symfony4 / Docker:SQLSTATE [HY000] [2002]连接被拒绝

如何修复 Laravel 中的“SQLSTATE[HY000] [2002] 连接被拒绝”错误(docker 中的工匠迁移)

PHP + MYSQL + Laravel - “SQLSTATE[HY000] [2002] 连接被拒绝”

使用Docker我收到错误:“ SQLSTATE [HY000] [2002]没有这样的文件或目录”

驱动程序发生异常:SQLSTATE[HY000] [2002] Connection denied Symfony Docker

SQLSTATE [HY000] [2002]连接被拒绝。Laravel API使用WSL2 Ubuntu 18.04托管在Docker上

PHP连接失败:SQLSTATE [HY000] [2002]连接被拒绝

SQLSTATE [HY000] [1040]连接太多

mySQL Docker“错误 2002 (HY000):无法通过套接字连接到本地 MySQL 服务器”

Laravel SQLSTATE [HY000] [2002]连接被拒绝| 锻造 AWS

Laravel Nova + Homestead SQLSTATE [HY000] [2002]连接被拒绝

RDS Laravel SQLSTATE[HY000] [2002] 连接被拒绝

Laravel 7 SQLSTATE [HY000] [2002]连接被拒绝

Laravel 5.7 SQLSTATE[HY000] [2002] 无法建立连接

Gitlab CI Symfony:SQLSTATE [HY000] [2002]连接被拒绝

Laravel:SQLSTATE [HY000] [2002]连接被拒绝

PHP PDO:SQLSTATE [HY000] [2002]连接被拒绝

Laravel SQLSTATE [HY000] [2002]连接被拒绝,但修改过

SQLSTATE[HY000] [2002] 无法建立连接

SQLSTATE[HY000] [2002] 连接被拒绝 Laravel 8

在本地docker容器上连接到MySQL时出错:ERROR 2002(HY000):无法连接到“ 127.0.0.1”上的MySQL服务器(115)

带有Laravel 4.2的Docker,连接到数据库时抛出错误:SQLSTATE [HY000] [2002]没有这样的文件或目录

SQLSTATE HY000 2002在运行bake命令时

SQLSTATE[HY000] [2002] php_network_getaddresses

Symfony 4使用该理论的工作者无法正常工作:SQLSTATE [HY000] [2002]连接超时

QueryException SQLSTATE [HY000] [2002]无法连接到MySQL服务器