我在同一个vm上安装了一个Windows 7,我有一个包含以下代码的表单:
MySqlConnection connection = new MySqlConnection("SERVER = 127.0.0.1; DATABASE = my_test; UID = root; PASSWORD = 'XXXX';");
private void Form1_Load(object sender, EventArgs e)
{
MySqlCommand cmd = new MySqlCommand("SELECT * FROM info", connection);
connection.Open();
MySqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
MessageBox.Show(reader[1].ToString());
}
}
reader.Close();
connection.Close();
}在我的pc上,我成功地连接到数据库,现在我将我的应用程序复制并粘贴到vm中,并且我得到了一个jit错误--我在vm上没有任何东西(除了.NET Framework4.0之外,没有任何东西),我确实让我的根用户远程启用了这样的功能:
GRANT ALL ON *.* to '%'@'%' WITH GRANT OPTION;
现在我仍然停留在这个问题上,所以如何用我的ip连接到db,以便vm能够找到它,以及是否需要在vm中设置任何东西?
注意:如果VirtualBox中出现问题,我可以使用另一个VirtualBox,但我怀疑这与VirtualBox无关。
我很困惑我做了这个表格

我把它移到vm上,然后简单地问:在那个文本框里写什么?
发布于 2014-03-27 10:29:57
当您连接到127.0.0.1时,您将连接到当前系统。无论运行的是哪个系统: main还是vm。您应该配置VirtualBox的网络设置,以便vm可以连接到您的主系统。在这种情况下,您将不是从vm连接到本地主机,而是连接到您设置为主OS的IP地址。
或者您可以将MySQL设置为vm并将数据库移动到该MySQL。
编辑
为了测试到MySQL的连接,可以使用telnet (http://windows.microsoft.com/en-us/windows/telnet-faq#1TC=windows-7)。首先,您应该知道MySQL端口。您可以从MySQL配置获得它,也可以从@Prageeth的答案中尝试端口。然后,您应该尝试从VirtualBox连接到MySQL到finded端口。您可以使用或编程或telnet。如果连接有问题,请尝试检查VM和主操作系统中的防火墙是否阻塞了您的程序(或telnet)。
如果您可以从另一台PC连接到MySQL,但不能从VM连接,那么问题在于VM的网络设置。
发布于 2014-03-27 10:42:53
给出一个mysql连接使用的PORT,类似于3308或3306。
https://stackoverflow.com/questions/22684351
复制相似问题