今天,我卸载并重新安装了最新版本的lampp以便移动到php 5.30,但突然一个非常简单的应用程序无法连接到mysql数据库。我正在使用PDO进行连接,并收到以下错误:
Warning: PDO::__construct() [pdo.--construct]: [2002] Invalid argument (trying to connect
via unix://) in /home/raistlin/www/todoapp/home.php on line 9
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002]
Invalid argument' in /home/raistlin/www/todoapp/home.php:9 Stack trace: #0
/home/raistlin/www/todoapp/home.php(9): PDO->__construct('mysql:host=loca...', 'USER',
'PASSWORD') #1 {main} thrown in /home/raistlin/www/todoapp/home.php on line 9
目前我还没有捕获到错误,为了调试它。
以下代码足以在我的系统上复制问题:
<?php
$DBACCESS = array(
"connstring"=>"mysql:host=localhost;dbname=todoapp",
"host"=>"localhost",
"user"=>"user",
"password"=>"password",
"todoapp"=>"todoapp"
);
echo implode('<br \>',$DBACCESS);
$dbh = new PDO($DBACCESS['connstring'],$DBACCESS['user'],$DBACCESS['password']);
$dbh = null;
?>
我在网上找到了一两个遇到同样问题的人,但他们都没有得到回应,更不用说起作用的解决方法了。有知道发生什么的吗?是配置方面有什么遗漏吗?我需要做什么来修复它?
pdo_mysql.default_socket=/opt/lampp/var/mysql/mysql.sock
,然后问题得以解决。否则我会疑惑自己在Zend框架中做了哪些配置错误,所以感谢你发布这个帖子! - namespaceform'host' => env('DB_HOST', '192.168.1.165'), 'port' => env('DB_PORT', '3317'),
而不是定义为 192.168.1.165:3317。 - Ashwani Panwar