下午好,
很抱歉打扰你,但我确实有一个关于Windows窗体C#应用程序的问题,我需要在Linux托管的数据库中连接它。在设法完成应用程序和数据库之后,我将数据库作为".sql"文件发送给了我的朋友(分配任务的人),他在Linux服务器上导入了它(通过PHPMyAdmin),它正常工作,但不幸的是,C#应用程序没有连接到他在新服务器上"上传"的数据库。我确实认为这个问题可能来自两种不同的情况:
a) 必须允许使用以下命令从服务器进行连接:"bind-address=x.x.x.x"?
b) 连接字符串可能错误?以下是用于测试连接是否在线的按钮的代码:
private void button2_Click(object sender, EventArgs e)
{
try
{
string MyConnection = "datasource=IP;port=3306;username=username;password=password";
MySqlConnection MyConn = new MySqlConnection(MyConnection);
MySqlDataAdapter MyDataAdapter = new MySqlDataAdapter();
MyDataAdapter.SelectCommand = new MySqlCommand("select * database_name.Users ;", MyConn);
MySqlCommandBuilder cb = new MySqlCommandBuilder(MyDataAdapter);
MyConn.Open();
MessageBox.Show("Database connection is established");
MyConn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我不得不说,这是我第一次尝试创建这样的应用程序,因此,如果这似乎是一个相当愚蠢的问题,我深表歉意:(谢谢你,祝你愉快!
问题可能是远程Linux机器可能没有打开端口3306。
从命令行可以运行:
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
打开mysql端口以允许远程连接
下面的页面说明了如何利用linux的各种优势来实现这一点。http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html