连接到 mysql 服务器中的 mysql 数据库
connect to mysql database which is in ubuntu server
我正在使用以下代码连接 PHP
中的 MySQL
数据库。
try {
shell_exec("ssh -f -L 3307:127.0.0.1:3306 ronak@server_ip sleep 60 >> logfile");
$this->_conn = $this->dbh = new PDO('mysql:host=127.0.0.1;dbname=my_db', DB_USER, DB_PASS);
$this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Couldn't connect to database. Please try again!");
}
我想直接连接远程 MySQL 主机。服务器在天蓝色的虚拟机上。我该如何做这样的配置?
我已经在 Azure 门户中为 MySQL 打开了 3306
端口。如果没有 ssh 隧道,我不知道如何在这里使用它。
谢谢。
1) 改变 my.conf(无论你的 mysql conf 文件叫什么)。并将绑定地址设置为 0.0.0.0 因为它是概率 127.0.0.1
2) stop/restart mysql 守护进程
Connections now are not limited to those from localhost (what you are when you ssh). The default is localhost for obvious security reason until dev guy tweaks it
3) 添加数据库用户可能来自 diff ip addr
CREATE USER 'fred7'@'192.168.2.7' IDENTIFIED BY 'my_password';
4) 拨款
GRANT ALL PRIVILEGES ON test7db.* TO 'fred7'@'192.168.2.7';
5) 防火墙
对于 3 和 4,假设 mysql 服务器在 aws ec2 上,我正坐在一个使用 sqlyog 或 workbench 的 public 图书馆。如果连接失败并显示 connection failed for user 'fred7'@'gfs6.nyc.comcastbusiness.net'
之类的内容,该程序会提醒我。所以很明显如何做 3 和 4。
祝你好运!
我正在使用以下代码连接 PHP
中的 MySQL
数据库。
try {
shell_exec("ssh -f -L 3307:127.0.0.1:3306 ronak@server_ip sleep 60 >> logfile");
$this->_conn = $this->dbh = new PDO('mysql:host=127.0.0.1;dbname=my_db', DB_USER, DB_PASS);
$this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Couldn't connect to database. Please try again!");
}
我想直接连接远程 MySQL 主机。服务器在天蓝色的虚拟机上。我该如何做这样的配置?
我已经在 Azure 门户中为 MySQL 打开了 3306
端口。如果没有 ssh 隧道,我不知道如何在这里使用它。
谢谢。
1) 改变 my.conf(无论你的 mysql conf 文件叫什么)。并将绑定地址设置为 0.0.0.0 因为它是概率 127.0.0.1
2) stop/restart mysql 守护进程
Connections now are not limited to those from localhost (what you are when you ssh). The default is localhost for obvious security reason until dev guy tweaks it
3) 添加数据库用户可能来自 diff ip addr
CREATE USER 'fred7'@'192.168.2.7' IDENTIFIED BY 'my_password';
4) 拨款
GRANT ALL PRIVILEGES ON test7db.* TO 'fred7'@'192.168.2.7';
5) 防火墙
对于 3 和 4,假设 mysql 服务器在 aws ec2 上,我正坐在一个使用 sqlyog 或 workbench 的 public 图书馆。如果连接失败并显示 connection failed for user 'fred7'@'gfs6.nyc.comcastbusiness.net'
之类的内容,该程序会提醒我。所以很明显如何做 3 和 4。
祝你好运!