无法连接到MySQL

时间:2014-12-30 02:40:15

标签: mysql database-connection

我正在尝试使用 PDO php 连接 MySQL服务器(由 godaddy 托管)。< / p>

但是我收到了这个错误:

An error occured : SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

请注意,这不是我托管的数据库。

我只是给了用户名和密码来构建数据库,创建用户等。

function ConnectToDb()
{
    try{
        $dns = 'mysql:host=1.1.1.1;dbname=dummyDbName';
        $username = 'dummyUser';
        $password = 'dummyPassword';
        $LINK = new PDO($dns, $username, $password);
        $LINK->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        $LINK->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        if (!$LINK){
            die('Could not connect : ' .mysql_error());
        }
        else{
            return $LINK;
        }
    } catch (PDOException $ex){
        echo "An error occured : " .$ex->getMessage();
    }
}

我知道这适用于localhost。

我使用它没问题,但只要我尝试连接到实时数据库就失败了。

任何人都有提示吗?

由于

1 个答案:

答案 0 :(得分:1)

请遵循以下格式:

$user = "username";
$pass = "password";
$host = "localhost";
$db = "yourDbname";
$dns = "mysql:host=" . $host . ";dbname=" . $db;
$dbh = new PDO($dns, $user, $pass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

当你必须进行查询时(只是一个例子):

$theid = 10;
$statement = $dbh->prepare('SELECT * FROM yourtable WHERE id = ? and name = ?');
$statement->execute(array($theid,'baronth'));

如果您想查看连接或执行查询时是否存在某些错误(并且您知道try-catch的工作原理),请将其包围:

try {
all the code that you wan't to check
}
catch (PDOException $e) {
    echo $e->getMessage();
}

它会回应错误。