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

时间:2015-09-07 14:23:53

标签: php laravel ubuntu laravel-5 artisan-migrate

当我运行此命令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

那么,问题是什么呢。 ??请帮忙。 我在3小时之前在bind-address not present in my.cnf file - Laravel询问了这个问题,但直到现在才回复。

3 个答案:

答案 0 :(得分:3)

首先,

  • 使用$ 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命令。我相信你会得到错误

  

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

现在,

  • 将绑定地址从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,
],

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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