尝试通过 XAMPP (ubuntu/cakephp) 通过 php 命令行连接到 mysql

尝试通过 XAMPP (ubuntu/cakephp) 通过 php 命令行连接到 mysql

我正在尝试通过 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,但这并没有改变错误。

我希望这可以帮助别人 :)!

相关内容