错误PHP创建连接在PDO(Error on creating connection to PDO

2019-07-18 07:10发布

今天,我删除,以便重新安装最新版本的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;
?>

网上看,我发现一两个其他人同样的问题,但他们都没有收到回应,更不用说工作之一。 有谁知道发生了什么事? 是不是我在配置错过了什么? 什么是我需要做修复它?

Answer 1:

通常意味着你需要指定TCP / IP(1),或告诉MySQL在您的Unix套接字(2):

  1. “MySQL的:主机= 127.0.0.1” 或 “MySQL的:主机=本地主机;端口= 3306”
  2. “MySQL的:unix_socket =的/ var /运行/的mysqld / mysqld.sock”


Answer 2:

您还可以使用127.0.0.1,而不是指定“localhost”的,你的数据库连接字符串中完全避免这个问题。



Answer 3:

您可能需要修改php.ini中这样PDO可通过指定找到的mysql.sock pdo_mysql.default_socket = /opt/lampp/var/mysql/mysql.sock (在XAMPP的情况下)。 不要忘记改变php.ini文件后,重新启动Apache。

(对不起,这似乎是一个重复的溶液)。



Answer 4:

我使用MAMP 2.0.1和Symfony的1.4学说为这个项目。

第三个选项为我工作有一个小的修改:在/config/databases.yml

dsn: 'mysql:unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock;dbname=MY_DB_NAME;'


Answer 5:

像这样的错误的最常见的原因是,MySQL的不运行。



文章来源: Error on creating connection to PDO in PHP
标签: php pdo lampp