【问题标题】:PDOException:SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socketPDOException:SQLSTATE[HY000] [2002] 无法通过套接字连接到本地 MySQL 服务器
【发布时间】:2015-11-03 07:15:15
【问题描述】:

每当我运行以下命令 php artisan migrate:install 时,我的 ubuntu 12.04 终端中都会出现以下错误...
[PDO异常]
SQLSTATE[HY000] [2002] 无法通过套接字'/var/run/mysqld/mysqld.sock' (2) 连接到本地 MySQL 服务器。

我在 ubuntu 12.04 中安装 laravel 5。在我的 /var/run/mysqld 文件夹中,我没有任何 mysqld.sock 文件。每个人都说检查你的 .env 文件,但我没有任何 .env.example 文件,但是是的,我的 app/config 文件夹中有 app.php、database.php、mail.php、cache.php 文件。在整个过程中我得出的结论是它们与数据库的连接存在问题,因为每当我想迁移数据库中的任何表时,我都不会迁移或不显示在数据库中,但我会在我的 app/controller/http 文件夹中创建表文件。所以问题是我运行 php artisan migrate 命令后表没有显示在数据库中,否则它将显示上述错误。所以请帮帮我。谢谢.......

【问题讨论】:

  • 你必须在根目录下创建 .env 文件,这是你需要知道的吗?
  • 你需要创建一个数据库并在.evn文件中配置它然后你可以去,你知道怎么做吗?
  • 但是当我创建 .env 文件时,我会收到消息 .env 文件已经存在,但我不知道它在哪里,我搜索了每个文件夹但没有得到 .env 文件。跨度>
  • 你的 laravel 项目根目录
  • 编辑该文件并输入数据库名称、用户名和密码

标签: laravel-5


【解决方案1】:
  1. 确保 MySQL 服务器已启动并正在运行,例如远程登录 127.0.0.1 3306
  2. 在 env('DB_HOST',
  3. 中将 'localhost' 替换为 '127.0.0.1'

【讨论】:

  • ysqladmin: connect to server at 'localhost' failed error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)' 检查mysqld正在运行并且套接字:'/var/run/mysqld/mysqld.sock'存在!
  • mysql 服务器没有运行..:(
  • 哇 127.0.0.1 而不是 localhost,我几乎放弃了 laravel :D
  • 好吧,这也为我修复了 osx,有人能解释为什么这甚至是一个问题吗?我以为 localhost 和 127.0.0.1 是同义词?本地主机 -> 127.0.0.1 这是一个环回
  • mysql 以特殊方式对待 localhost,在dev.mysql.com/doc/refman/5.7/en/connecting.html进行了描述
猜你喜欢
  • 1970-01-01
  • 2012-11-26
  • 2014-03-28
  • 2013-03-05
  • 1970-01-01
  • 2019-01-26
相关资源
最近更新 更多