我正在尝试通过 xampp 运行 Cake Shell,但遇到了一些问题。
什么有效
- 我可以在通过 apache 运行时将 PHP 连接到 Mysql(在 Web 浏览器中)
- 我可以通过输入 php 在 bash 中运行 PHP CLI,我将 xampp 下的 bin 文件夹设置为环境变量
- 我可以运行 cake,我将 cake/console 目录设置为环境变量
- 我可以运行 Cake 的 shell 脚本,无需附加任何模型
什么不起作用
连接模型后运行 shell 脚本。我收到以下错误:PHP 警告:mysql_connect():无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地 MySQL 服务器 (2),位于 /opt/lampp/htdocs/cakephp/cake/libs/model/datasources/dbo/dbo_mysql.php 的第 561 行
我尝试过
最初,cli 报告说找不到 mysql_connect。因此,尽管我本以为 XAMPP 已经建立了必要的关系,但我还是安装了 php5-mysql。安装后,它正在寻找 mysql.sock。我尝试更改 /etc/php5/cli/php.ini 下的位置。也许那不是正确的位置,或者我没有更改正确的变量。
问题
我可以在哪里更改 mysql.sock 的位置?或者,我这样做不正确,有没有更好的方法?
答案1
您应该找到my.cnf
设置文件所在的位置,我猜它位于某个地方/opt/lampp/etc
或类似的地方。此文件有一个带参数[mysqld]
的部分socket=/path/to/mysql.sock
。您可以使用它find /opt/lampp -name my.cnf
来查找配置文件。
答案2
所以...我的快捷解决方案是:
sudo mkdir /var/run/mysqld
sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock
之后就成功了。我尝试将 /opt/lampp/etc/my.cnf 复制到 /etc/mysql/my.cnf,但这并没有改变错误。
我希望这可以帮助别人 :)!