【问题标题】:PDO cannot connect to MySQL but CLI canPDO 无法连接到 MySQL,但 CLI 可以
【发布时间】:2014-09-12 12:49:12
【问题描述】:

制作了一个测试脚本:

<?php
$a = new PDO('mysql:dbname=mydbname;host=mydbhost:3306', 'myusername', 'mypassword');
var_dump($a);

我收到以下错误:

PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2005] Unknown MySQL server host 'mydbhost:3306' (107)' in /users/pvarney/test_pdo.php:3 Stack trace:
#0 /users/pvarney/test_pdo.php(3): PDO->__construct('mysql:dbname=my...', 'myusername', 'mypassword')
#1 {main}   thrown in /users/pvarney/test_pdo.php on line 3

然后通过 CLI:

[pvarney@ci-server ~]$ mysql mydbname -h mydbhost -u myusername -p --port=3306
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 828511

... snip mysql welcome text ...

mysql>

我已更改连接字符串以屏蔽连接信息,但我确实将其复制粘贴到 CLI 中以确保没有任何拼写错误。

【问题讨论】:

  • host=mydbhost;port=3306
  • 你能试试这个吗? new PDO('mysql:host=mydbhost;port=3306;dbname=mydbname', 'myusername', 'mypassword');
  • 谢谢大家。奇怪的是,我的连接字符串在 5.4 中有效,但在 5.3 中无效。

标签: php mysql pdo


【解决方案1】:

改变

new PDO('mysql:dbname=mydbname;host=mydbhost:3306', 'myusername', 'mypassword');

到

new PDO('mysql:dbname=mydbname; host=mydbhost; port=3306;', 'myusername', 'mypassword');

【讨论】:

    【解决方案2】:

    查看 PHP 文档以获取 PDO_MYSQL_DSN。端口应作为单独的参数传递:

    mysql:dbname=mydbname;host=mydbhost;port=3306
    

    【讨论】:

      【解决方案3】:

      看看这篇文章: Not able to connect to MySQL server using PDO

      尝试更改端口设置

      【讨论】:

        【解决方案4】:
         $a = new PDO('mysql:dbname=mydbname;host=mydbhost;port=3306', 'myusername', 'mypassword');
                                                         /*note ^^*/
        

        【讨论】:

          【解决方案5】:

          这对我有用:

          1. 打开类似 /etc/php5/cli/php.ini 的文件
          2. 找到条目 pdo_mysql.default_socket=/opt/lampp/var/mysql/mysql.sock
          3. 将其更改为您想要的。 就这样。

          【讨论】:

            猜你喜欢
            • 2010-11-07
            • 2015-11-20
            • 1970-01-01
            • 2014-01-05
            • 2022-01-18
            • 2017-09-23
            • 2014-07-12
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多