远程Mysql无法连接

时间:2017-10-25 21:36:11

标签: php mysql

显然我已经将这个搜索到了死亡并搜索了所有帖子。

但是我必须忽略一些明显的东西,所以我发布在这里,以防新鲜的眼睛可以帮助我找到我忽略的东西。

方案

我在Panthur网站托管有一个网站,我在Zuver网站托管上有10个包。

我希望我在Panthur的网站能够在zuver上将数据发送到mysql数据库。

这是我到目前为止所做的步骤。

登录zuver仪表板,启用远程Mysql访问Panthur的ip地址。

登录zuvers cpanel添加panthur的IP地址。

现在在panthur网站上传并运行以下php。

<?php    
$servername = "<the ip address of the zuver site>";
$username = "<the mysql username>";
$password = "<the password>";
$dbname = "<the database name>";

// Create connection
 $conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
 if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
?>

我得到的只是永远加载,并最终超时。

好的,所以让我们反过来试试!

登录Panthur仪表板,启用远程Mysql到zuver ip。 登录Panthur cpanel启用远程mysql到zuver ip。

将脚本上传到zuver,将servername,username,pass,dbname更改为panthur站点。

中提琴!不幸的是没有。

这次我们得到了 无法连接到''(111)

上的MySQL服务器

好的回到1号广场。

我进入Zuver网站,编辑my.cnf。显然'绑定'可能是问题所在。

但是没有绑定评论?

我已经有4天了,是的,我不知道下一步该尝试什么?

向前迈进......

我现在尝试了一个pdo连接

<?php

//database credentials
define('DBHOST','<domain of zuver site>');
define('DBUSER','<user>');
define('DBPASS','<password>');
define('DBNAME','<database_name>');


try {

    //create PDO connection
    $db = new PDO("mysql:dbname=".DBHOST.";dbname=".DBNAME, DBUSER, DBPASS);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch(PDOException $e) {
    //show error
    echo '<p class="bg-danger">'.$e->getMessage().'</p>';
    exit;
}


?>

我收到此错误

SQLSTATE [28000] [1045]拒绝访问用户''@ localhost'(使用密码:是)

我试过了,我认为也是root用户名。 (这是cpanel登录的用户名吗?)

我尝试过,使用主帐户的用户名whm帐户。 (因为它坐在10包上)

1 个答案:

答案 0 :(得分:0)

要允许远程用户访问Zuver数据库,您必须向该用户授予权限。如果可以,以root身份访问Zuver数据库。 然后尝试运行查询:

GRANT ALL PRIVILEGES ON mydb.* TO 'someuser'@'panthur.server.ip.address' IDENTIFIED BY 'password';

如果用户不存在,您可能需要先创建用户。另外,出于安全原因,您必须将privileges限制为实际需要的内容:

GRANT CREATE ROUTINE, CREATE VIEW, CREATE USER, 
ALTER, SHOW VIEW, CREATE, ALTER ROUTINE, EVENT,
SUPER, INSERT, RELOAD, SELECT, DELETE, FILE, 
SHOW DATABASES, TRIGGER, SHUTDOWN, REPLICATION CLIENT, 
PROCESS, REFERENCES, UPDATE, DROP, REPLICATION SLAVE, 
EXECUTE, LOCK TABLES, CREATE TEMPORARY TABLES, INDEX
ON mydb.* TO 'someuser'@'panthur.server.ip.address' IDENTIFIED BY 'password';

要告诉服务器重新加载授权表,请执行flush-privileges操作:

FLUSH PRIVILEGES;

希望这会有所帮助。