Database 允许在linux上远程访问mysql(通过webmin或shell)

Database 允许在linux上远程访问mysql(通过webmin或shell),database,remote-access,remote-debugging,remote-server,webmin,Database,Remote Access,Remote Debugging,Remote Server,Webmin,规格: Ubuntu 14.04 webmin/virtualmin 1.791 我正在使用以下代码测试远程mysql数据库连接: <?php $db_host = "123.456.789"; $db_name = "database"; $db_user = "user"; $db_pass = "password"; $db_table_prefix = "prefix_"; GLOBAL $errors; GLOBAL $successes; $errors = arra

规格: Ubuntu 14.04 webmin/virtualmin 1.791

我正在使用以下代码测试远程mysql数据库连接:

<?php

$db_host = "123.456.789";
$db_name = "database";
$db_user = "user";
$db_pass = "password";
$db_table_prefix = "prefix_";



GLOBAL $errors;
GLOBAL $successes;

$errors = array();
$successes = array();

$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name);
GLOBAL $mysqli;

if(mysqli_connect_errno()) {
    echo "Conn Error = " . mysqli_connect_error();
    exit();
}

?>

我不断地发现这个错误:

无法建立连接,因为目标计算机处于活动状态 拒绝了

研究表明,这意味着服务器“没有监听”。在运行上述脚本之前,我已经尝试通过WebMinGUI允许远程mysql访问。我所做的是编辑“数据库管理->主机权限”,如下所示:

这应该允许远程mysql访问,但它不起作用。我还从其他地方读到,为了允许远程mysql访问,我需要编辑
/etc/mysql/my.cnf
;我原以为在我编辑webmin中的“主机权限”后,该文件会被更改,但事实并非如此。另一方面,我在
my.cnf
中找不到应该编辑的行,所以我被困在这里


非常感谢您的帮助。

我已经让它工作了,但根本不是通过webmin

首先,我需要注释掉
/etc/mysql/my.cnf
中的以下行:

#bind-address       = 127.0.0.1
我想我也可以将
127.0.0.1
更改为我的本地IP地址,而不是简单地注释出来。很多谷歌搜索结果到此为止,但这还不够下一步是授予本地用户权限:在远程服务器上,我需要运行以下命令:

$mysql-u root-p 输入密码:

mysql>使用mysql

mysql>全部启用。到由标识的用户@localIP “密码”

mysql>刷新权限

事实上,在我问这个问题之前,我在谷歌搜索的时候就看到了这一点,但我只是忽略了它,因为我认为我已经做到了。事实证明,我不仅需要在服务器端授予特权,还需要为“本地用户””授予特权


如果我还遗漏了什么,或者你知道如何通过webmin来做,请在这里发表评论(我仍然想知道在webmin中编辑“主机权限”有什么作用)。

你也可以通过webmin来做这件事

创建远程访问的用户帐户

  • Webmin>服务器>MySQL数据库服务器>用户权限

允许MySQL服务器侦听远程请求

  • Webmin>服务器>MySQL数据库服务器>MySQL服务器配置

MySQL服务器侦听地址-将其设置为任意

使用
service MySQL Restart
或直接从webmin重新启动MySQL

允许MySQL监听任何端口都不是一个好主意,除非你是唯一可以访问该网络的人

不要让它像这样在之后,最好允许某些域上的某些主机,比如您的IP,或者干脆不在所有端口上侦听(如果不需要的话),即当您完成会话时

您也可以通过
/etc/mysql/my.cnf
只需添加您选择的
绑定地址
,而不是本地主机

请参阅此处: