1

When I run this command find / -name my.cnf I find two locations for my.cnf

  • /opt/lampp/etc/my.cnf
  • /etc/mysql/my.cnf

I don't get which one is used by MySQL server?

And, when i run command php artisan migrate , I get this error

 [PDOException]                                                              
  SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket ' 
  /var/run/mysqld/mysqld.sock' (2) 

You can all see very clearly the error path showing /var/run/mysqld/mysqld.sock (Actually, in my system/desktop. There is no folder name "mysqld" inside "run folder")

I have a `mysql.sock` file inside /opt/lampp/var/mysql/mysql.sock

So, what can be the issue. ?? Please help. I asked the question here bind-address not present in my.cnf file - Laravel 3 hours before, but no response until now.

4

3 に答える 3

3

初めに、

  • コマンドを使用してシステム内のphp.iniファイルを検索するか、[ where can I find the php.ini for php-cli ] をクリックします。$ php -i |grep php\.ini
  • php.iniファイルを開きます。
  • そして、これらの行が存在するかどうかを確認してください。

    a) extension=mysql.so b)extension=pdo_mysql.so

  • 「はい」の場合、前にあるこれを (;) 削除します。
  • 存在しない場合は、このコマンドを実行しますsudo apt-get install php5-mysql

次に、php artisan migrateコマンドを入力します。きっとエラーになるよ

ソケットを介してローカル MYSQL サーバーに接続できません

今、

  • bind-address を からlocalhostに変更127.0.0.1
  • 実行します/opt/lampp/bin/php
  • これを実行した後、

「動的ライブラリを読み込めません」

次に、削除しphp_mssql.dll extensionます(Windows以外の場合)

  • エラーが発生しない場合は、 Project-Name-Folder/config/database.phpファイルに直接アクセスして、このコードを追加します'unix_socket' => '/opt/lampp/var/mysql/mysql.sock'

の完全なパスを見つけてmysql.sock追加します

'mysql' => [
    'driver'    => 'mysql',
    'host'      => env('DB_HOST', 'localhost'),
    'database'  => env('DB_DATABASE', 'danishLara'),
    'username'  => env('DB_USERNAME', 'root'),
    'password'  => env('DB_PASSWORD', ''),
    'unix_socket'   => '/opt/lampp/var/mysql/mysql.sock', //Add this line here
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
    'strict'    => false,
],
于 2015-09-11T09:42:59.573 に答える
0

最初に MySQL が実行されていることを確認し (単純ですが、チェックするのは良いことです!)、MySQL の正しいインストールが実行されていることを確認します (LAMP インストールとスタンドアロンの MySQL インストールがある場合)。

を使用して接続している場合は、 を使用して接続してlocalhostみてください127.0.0.1。これは、ソケットの代わりに TCP/IP コネクタを使用する場合があります - 単なる回避策です。

于 2015-09-07T14:37:29.057 に答える
0

lamp をアンインストールする必要があると思います。手動構成を使用して mysql をインストールし、apache2 を手動でインストールして、 lamp を使用しない方がよいでしょう。

于 2015-09-07T14:33:02.363 に答える