我无法从运行Ubuntu的Oracle VirtualBox连接到主机操作系统(Win 7)上的MySQL数据库。我写了这个PHP代码,以便连接,但我一直收到错误连接:
<?php
$dsn = 'mysql:host=192.168.1.9;dbname=finance';
$db_username = 'sdb_user';
$db_password = 'password';
try {
$db = new PDO($dsn, $db_username, $db_password);
}catch (PDOException $e) {
$error_message = $e->getMessage();
include('../errors/database_error.php');
exit();
}
$query = 'SELECT * FROM books';
$books = $db->query($query);
foreach ($books as $book) {
echo $book['title'];
}
?>
我知道代码有效,因为我可以使用localhost而不是IP地址从我的Windows 7主机操作系统运行它,我知道VirtualBox和Windows 7上的Linux都在同一个子网上,因为我可以成功从另一边ping另一个。
我很确定我在Windows端正确打开了端口3306,但我不知道如何检查是否存在这个问题。
我还应该做些什么才能让代码连接到MySQL数据库?
编辑:问题是端口未打开远程连接。打开端口后,我收到错误消息,指出我不允许连接到sql server。从那里我在Windows MySQL上创建了一个新用户,用户名为“home”,密码为“home”,并且可以使用以下命令连接到它:
$ mysql -h 192.168.1.9 -u home -p
然而,当我运行我的文件时,现在显示:
$dsn = 'mysql:host=192.168.1.9;dbname=finance';
$db_username = 'home';
$db_password = 'home';
我仍然得到'数据库错误' 有什么建议吗?