【问题标题】:Error with transfering MySQL database (connected via PDO) from localhost to hosted server将 MySQL 数据库(通过 PDO 连接)从 localhost 传输到托管服务器时出错
【发布时间】:2013-12-05 20:46:20
【问题描述】:

好的,这是我的代码:

try {
$pdo = new PDO ('mysql:host=127.0.0.1;dbname=db_name','user','password'); 
} catch (PDOException $e) {
exit ('Database error.');
}

我尝试了很多不同的主机名、用户名和密码组合,但每次都收到“数据库错误”。

我的问题是: 我应该怎么做才能使用这部分代码(这是我的 connection.php 文件)成功地将 MySQL 数据库从 localhost 传输到我的托管服务器?

提前谢谢你。

【问题讨论】:

  • 从不输出固定的错误字符串,尤其是在开发时,如果你有exit($e->getMessage()),你至少会得到一些关于连接失败原因的有用信息。
  • 这完全取决于主机的配置。
  • 我知道这取决于主机的配置,我尝试使用服务器的 IP 地址、我的用户名和用于登录 CPanel 的密码,但没有。然后我尝试使用 PHPMyAdmin 登录详细信息(用户名和密码),但什么也没有。
  • 你的主人是谁?有几个(如果不是全部)主机不使用主机本身作为连接地址,而是完全不同的服务器。
  • InterWorx。 @MarcB 我接受了你的建议,现在我有了这个:SQLSTATE[28000] [1045] 用户 'aleksandarpajic'@'localhost' 的访问被拒绝(使用密码:否)

标签: php mysql pdo localhost


【解决方案1】:

摆脱这种尝试捕获的东西。将其保留为

 $pdo = new PDO ('mysql:host=127.0.0.1;dbname=db_name','user','password'); 

看看它说了什么(屏幕上或日志上)

【讨论】:

    【解决方案2】:

    使用这个 try and catch 块进行错误跟踪

    try {
    
            $this->conn = new PDO('mysql:host=127.0.0.1;dbname=db_name','user','password');
            $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch (PDOException $e) {
            echo 'Error: ' . $e->getMessage();
        }
    

    【讨论】:

    • 好的,我收到一条错误消息: SQLSTATE[28000] [1045] Access denied for user 'aleksandarpajic'@'localhost' (using password: NO) 。这是什么意思?
    猜你喜欢
    • 2015-11-22
    • 2013-01-26
    • 1970-01-01
    • 2014-07-14
    • 2022-01-05
    • 2020-06-02
    • 2014-03-17
    • 1970-01-01
    • 2020-07-08
    相关资源
    最近更新 更多