sql >> データベース >  >> RDS >> Mysql

エラー:SQLSTATE[HY000][2002]そのようなファイルまたはディレクトリはありません

    私はついに問題を解決しました、あなたの助けを@Dlkに感謝します。

    問題の原因は、database.phpにあるためです。 、mysqlのホストをlocalhostと呼んでいました docker-compose.ymlのMYSQLサービスの名前の代わりに ファイル。したがって、database.php ファイルは次のようになります:

    <?php
    
    $host = 'nairobi_mysql'; // Must be the service name of the database in `docker-compose.yml`
    $db_name = 'nairobi';
    $user = 'admin';
    $pass = '123456';
    $charset = 'utf8mb4'; // Always set charset for database
    $port = '3306'; 
    
    $dsn = "mysql:host=$host;dbname=$db_name;port=$port;charset=$charset";
    $options = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    try {
         $pdo = new PDO($dsn, $user, $pass, $options);
    } catch (\PDOException $e) {
         throw new \PDOException($e->getMessage(), (int)$e->getCode());
    }
    
    ?>
    

    これは私のdocker-compose.ymlと相関しています ファイル

    version: '3.7'
    
    services:
      php:
        container_name: nairobi_php
        build:
          context: ./
        volumes:
          - './src:/var/www/html'
        depends_on:
          - mysql
        ports:
          - 80:80
    
      mysql:
        container_name: nairobi_mysql
        image: mysql:8.0
        environment:
          MYSQL_ROOT_PASSWORD: CUeHpADRmZCtnTFGctxp
          MYSQL_DATABASE: nairobi
          MYSQL_USER: admin
          MYSQL_PASSWORD: 123456
        restart: always
        command: --default-authentication-plugin=mysql_native_password
        ports:
          - 3306:3306
    
      adminer:
        image: adminer
        restart: always
        ports:
          - 8080:8080
    
    


    1. Wildfly10が起動時にMySQLXAドライバーをロードできない

    2. MySQL-BETWEENは正しい結果を選択しません

    3. SQLServer-Windows認証で接続します

    4. JPAによる永続性のためのJavaサポートを理解する