我正在尝试设置一个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文件或类似内容中读取。有没有人有过这个问题的经验,或者有任何想法指出我正确的方向?
谢谢!
答案 0 :(得分:0)
我认为错误是套接字文件。你在哪里安装你的xampp?
你能试试吗,
mysql -u root -p --socket = / opt / xampp / var / mysql / mysql.sock
其中opt是您的安装目录。选择选择安装目录。
编辑:或者如果您不想在mysql命令中使用socket参数,可以尝试
ln -s /opt/xampp/var/mysql/mysql.sock /var/run/mysql/mysqld.sock
感谢。
答案 1 :(得分:0)
在 MacOS 中:
步骤 1:转到您的 Finder 并按照以下路径编辑文件。
/Applications/XAMPP/xamppfiles/etc/my.cnf
第2步:打开文件,找到[mysqld]部分
添加一行如下
innodb_force_recovery = 1
,并保存。
第 3 步:在终端中运行命令
sudo /Applications/XAMPP/bin/mysql.server start
等到一切正常。
第四步:再次编辑my.cnf,去掉刚刚添加的那一行
innodb_force_recovery = 1
,并保存。
第五步:停止重启
sudo /Applications/XAMPP/bin/mysql.server stop
等到一切正常。
请注意,如果您没有通过这一步,您的所有表格都将是只读的。
步骤 6:打开 XAMPP Manager 并单击“开始”按钮再次启动 MySQL 数据库 进度状态将显示“正在运行”。
注意:此问题将在您重新启动 Mac OS X 后再次出现。因此,您必须再次重复这些步骤。请记住,这是变通的解决方案。