无法使用 Laravel 连接到本地 MySQL 服务器

Could not connect to local MySQL server with Laravel

当我 运行 这个命令时 find / -name my.cnf 我找到了 my.cnf

的两个位置

我不明白 MySQL 服务器使用哪个?

而且,当我 运行 命令 php artisan migrate 时,我得到这个错误

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

大家可以很清楚的看到错误路径显示/var/run/mysqld/mysqld.sock(其实我的system/desktop里面没有文件夹名"mysqld"里面的"run folder")

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

所以,可能是什么问题。 ??请帮忙。 我在 3 小时前 在这里问过这个问题,但直到现在都没有回复。

我认为你必须卸载 lamp ,最好使用手动配置安装 mysql 并且 apache2 手动不要使用 lamp !

确保 MySQL 首先是 运行ning(简单,但很好检查!),并确保 MySQL 的正确安装是 运行(如果您有 LAMP 安装以及独立 MySQL 安装)。

如果您使用 localhost 进行连接,请尝试使用 127.0.0.1 进行连接。这可能会使用 TCP/IP 连接器而不是套接字 - 只是一种解决方法。

首先,

  • 使用 $ php -i |grep php\.ini 命令在您的系统中找到您的 php.ini 文件或单击 where can I find the php.ini for php-cli
  • 打开php.ini文件。
  • 并且,确保这些行是否存在。

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

  • 如果是,请删除他们前面的 (;)。
  • 如果不存在,运行 这个命令 sudo apt-get install php5-mysql

现在,输入 php artisan migrate 命令。我相信你会得到 error

can't connect to local MYSQL server through socket

现在,

  • 将绑定地址从 localhost 更改为 127.0.0.1
  • 运行/opt/lampp/bin/php
  • 在运行之后如果你得到

"unable to load dynamic library"

然后,移除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,
],