web-dev-qa-db-ja.com

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

_ubuntu 16.04._を使用します
_PHP Version 7.0.4-7ubuntu2_。
Apache/2.4.18 (Ubuntu)
_PHP extension: mysqli_(phpmyadminで記述)。

_15.10 to 16.04_からubuntuをアップグレードしましたが、次のエラーが発生しました:

私のプロジェクトは私のサーバーで正しく実行されますが、私のosでは実行できません:

_Database Exception – yii\db\Exception
SQLSTATE[HY000] [2002] No such file or directory
↵
Caused by: PDOException
SQLSTATE[HY000] [2002] No such file or directory

in /var/www/html/iicitySite/vendor/yiisoft/yii2/db/Connection.php at line 579
_
8
Saltern

ホストとして「localhost」を「127.0.0.1」に変更する

return [
    'components' => [
        'db' => [
            'class' => 'yii\db\Connection',    
            'dsn' => 'mysql:Host=127.0.0.1;dbname=abc',
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
        ],
36
vijay nathji

MAMPユーザー向けのソリューションは

'components' => [
    'db' => [
        'class' => 'yii\db\Connection',
        'dsn' => 'mysql:Host=localhost;port=8889;dbname=mydbname;unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock',
        'username' => 'myuser',
        'password' => 'mypassword',
        'charset' => 'utf8',
    ],
],
3
sirjay

mampを使用する場合は、MAC OSで「php」コマンドを使用しないでください。ただし、/Applications/MAMP/bin/php/php5.6.30/bin/php yii migrateなど、mampで「php」を使用してください。

1
qiaoer

私はMAMP環境で実行しており、上記の2つのソリューションを使用してうまく機能します

  1. localhost127.0.0.1に変更します
  2. localhostのままにして、デフォルトのポートが使用されていても、mysqlポートを定義します(localhost:3306

この答えがあなたを助けることを願っています:

ホスト名をlocalhostから127.0.0.1に変更します

これはbackend\common\config\main-local.php内にあります

次にphp yii migrateを実行します。

うまくいけば、データベースにテーブルが正常に作成されます

0
Deepak swain

PHP 7.2.24-0ubuntu0.18.04.3、

  • MySQLソケットパスを取得する
  • ソケット情報をyii2のデータベース構成に追加します

Mysqlへのソケットパスログインを取得し、次の手順を実行するには

  • ターミナルを開き、次の手順を実行します

    mysql -u root -p
    mysql> show variables like '%sock%';
    +-----------------------------------------+------------------------------------------------------+
    | Variable_name                           | Value                                                |
    +-----------------------------------------+------------------------------------------------------+
    | mysqlx_socket                           | /tmp/mysqlx.sock                                     |
    | performance_schema_max_socket_classes   | 10                                                   |
    | performance_schema_max_socket_instances | -1                                                   |
    | socket                                  | /opt/packages/lampstack-7.3.9-0/mysql/tmp/mysql.sock |
    +-----------------------------------------+------------------------------------------------------+
    4 rows in set (0.00 sec)
    exit
    
  • 次に、以下の構成情報を追加します

    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:unix_socket=/opt/packages/lampstack-7.3.9-0/mysql/tmp/mysql.sock;dbname=basketmantra',
    'username' => 'root',
    'password' => 'root123',
    'charset' => 'utf8',
    

これが役に立てば幸い

場合によっては、httpd、Apache、またはlamppを使用することもできます。また、ターミナルのphpおよびmysqlコマンドが、Webサーバーが使用しているバージョンと同じであることを確認してください。

phpinfo()は、Webサーバーが使用しているバージョンを確認するのに役立ちます

    <?php
        phpinfo();
    ?>

コマンドの場合

    $ type php
    php is hashed (/usr/bin/php)

    $ type mysql
    mysql is /opt/packages/lampstack-7.3.9-0/mysql/bin/mysql
0

私も同じ問題を抱えていました。 localhostを変更しても問題は解決しませんでした。代わりに、次のようにdbポートを追加します。

'dsn'=>'mysql:Host=localhost:3307;dbname=geep'
0
Olamide226