xampp、php和mysqld.sock

xampp、php和mysqld.sock,php,apache,xampp,Php,Apache,Xampp,我正在尝试设置一个laravel应用程序。应用程序已设置,但当我尝试运行迁移以创建表时,出现以下错误: [PDOException] SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket ' /var/run/mysqld/mysqld.sock' (2) 现在我在ubun

我正在尝试设置一个laravel应用程序。应用程序已设置,但当我尝试运行迁移以创建表时,出现以下错误:

[PDOException]                                                               
SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '  
/var/run/mysqld/mysqld.sock' (2)
现在我在ubuntu上运行xampp。我不知道为什么它会在这个目录中搜索。当我运行phpinfo时,它告诉我mysqld.sock位于:/opt/lampp/var/mysql/mysql.sock

我不确定php_cli模块是否从其他ini文件或类似文件中读取。有没有人有过这方面的经验,或者有什么想法可以为我指明正确的方向


谢谢

我认为错误在于套接字文件。您在哪里安装了xampp

你能试试这个吗

mysql-u root-p--socket=/opt/xampp/var/mysql/mysql.sock

其中opt是您的安装目录。将opt更改为您的安装目录

编辑:或者如果您不想在mysql命令上使用socket参数,您可以试试

ln-s/opt/xampp/var/mysql/mysql.sock/var/run/mysql/mysqld.sock

谢谢

在MacOS中:

步骤1:转到Finder并按照下面的路径编辑文件。
/Applications/XAMPP/xamppfiles/etc/my.cnf

步骤2:打开文件并找到[mysqld]部分 添加一行,如下所示
innodb\u force\u recovery=1
,然后保存

步骤3:在终端中运行命令
sudo/Applications/XAMPP/bin/mysql.server start
等一切都好了再说

第4步:再次编辑my.cnf并删除刚才添加的行
innodb\u force\u recovery=1
,然后保存

步骤5:停止以重新启动
sudo/Applications/XAMPP/bin/mysql.server-stop
等一切都好了再说

提醒您,如果未通过此步骤,则所有表都将是只读的

第六步:打开XAMPP管理器,点击“开始”按钮,再次启动MySQL数据库 进度状态将显示“正在运行”

注意:重新启动Mac OS X后,这个问题将再次出现。因此,您必须再次重复这些步骤。请记住,这是解决方案