gpt4 book ai didi

java - 可以用java连接MySQL数据库,但不能用PHP连接?

转载 作者:行者123 更新时间:2023-11-30 00:04:18 24 4
gpt4 key购买 nike

我有一个 java 应用程序,可以连接到在线 MySQL 数据库,如下所示:

private String hostName = "db4free.net:3306";
private String dbName = "mydbname";
private String username = "name";
private String password = "pw";
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://" + hostName + "/" + dbName, username, password);
System.out.println("Connection established!");
} catch (Exception ex) {
ex.printStackTrace();
}

它工作得很好。但是,我尝试使用 PHP 进行相同的操作(忽略主机名差异,应该是这样):

$host = "85.10.205.173"; 
$dbname = "dbname";
$username = "name";
$password = "pw";

$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');

try
{
// Open connection with db
$db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options);
}
catch(PDOException $ex)
{
// Just an error message, if connection fails
die("Failed to connect to the database: " . $ex->getMessage());
}

过了一会儿,我得到这个:SQLSTATE[HY000] [2003] Can't connect to MySQL server on '85.10.205.173' (4)

那么为什么两者的工作方式不同呢?我认为远程访问已启用(因为我可以使用 java 连接)。

最佳答案

mysql 中禁用 DNS 主机名查找

To disable DNS host name lookups, start the server with the --skip-name-resolve option. In this case, the server uses only IP addresses and not host names to match connecting hosts to rows in the MySQL grant tables. Only accounts specified in those tables using IP addresses can be used.

别忘了重启MySQL才能生效。

不确定这是否能解决您的问题。

关于java - 可以用java连接MySQL数据库,但不能用PHP连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24725111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com