1

当我运行此命令时find / -name my.cnf,我找到两个位置my.cnf

  • /opt/lampp/etc/my.cnf
  • /etc/mysql/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(其实在我的系统/桌面。“运行文件夹”里面没有文件夹名称“mysqld”)

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

那么,可能是什么问题。?? 请帮忙。我在 my.cnf 文件中不存在绑定地址3 小时前在这里问了问题- Laravel ,但直到现在没有回应。

4

3 回答 3

3

首先,

  • 使用命令在您的系统中找到您的php.ini$ php -i |grep php\.ini文件,或者单击在哪里可以找到 php-cli 的 php.ini 文件
  • 打开php.ini文件。
  • 并且,确保这些行存在或不存在。

    一)extension=mysql.so 二)extension=pdo_mysql.so

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

现在,键入php artisan migrate命令。我相信你会得到错误

无法通过套接字连接到本地 MYSQL 服务器

现在,

  • 将绑定地址从更改localhost127.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

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

于 2015-09-07T14:33:02.363 回答
0

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

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

于 2015-09-07T14:37:29.057 回答