错误2002(HY000):Can';t通过socket'/var/lib/mysql/mysql.sock


ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13) Ubuntu

我已经通过sudo service mysql status检查了mysql的状态,并得到了以下输出:

 mysql.service - LSB: Start and stop the mysql database server daemon
   Loaded: loaded (/etc/init.d/mysql; bad; vendor preset: enabled)
   Active: active (exited) since Fri 2016-07-22 15:06:35 IST; 11s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 4946 ExecStart=/etc/init.d/mysql start (code=exited, status=0/SUCCESS
Jul 22 15:06:35 ubuntu-lenovo systemd[1]: Starting LSB: Start and stop the mysql
Jul 22 15:06:35 ubuntu-lenovo systemd[1]: Started LSB: Start and stop the mysql 

但当我尝试通过终端运行时,它会说:

错误2002(HY000):无法通过套接字连接到本地MySQL服务器'/var/lib/mysql/mysql.sock'(13)

当我尝试使用主机(即mysql --host 127.0.0.1 -uroot)运行时,它会显示:

错误2003(HY000):无法连接到127.0.0.1'(111)上的MySQL服务器

我已经尝试了SO的几乎所有解决方案。

只需检查my.cnf(mysql配置文件)并从更改

bind-address = 0.0.0.0

bind-address = 127.0.0.1

如果你没有这个参数,就添加它。

绑定到0.0.0.0可以让您的mysql在每个配置的IP上都可用,因为您不能只绑定服务器上的两个或三个IP,配置可以是:localhost或所有内容。

然后检查你的/etc/hosts文件,并确保行

127.0.0.1 localhost

接下来,重新启动mysql

service mysql restart
  1. 使用$ php -i |grep php'.ini命令或使用此链接在系统中查找php.ini文件
  2. 打开php.ini文件
  3. 并且,请确保这些线路是否存在。

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

  4. 如果是,请删除前面的(;)
  5. 如果不存在,则运行此命令sudo apt-get install php5-mysql

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

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

现在,

  • 将绑定地址从localhost更改为127.0.0.1
  • 运行/opt/lampp/bin/php
  • 运行后,如果

"无法加载动态库"

然后,移除php_mssql.dll extension(对于非窗口)

  • 如果没有得到错误,请直接访问项目名称文件夹/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,
],

这可能发生在自制软件安装之后,有时由于权限问题而发生。以下命令修复了我电脑上的相同问题。

sudo chown -R _mysql:mysql /usr/local/var/mysql
sudo mysql.server start