【问题标题】:How can I connect to a Linux hosted database via a Windows Form C# Application?如何通过 Windows Form C# 应用程序连接到 Linux 托管数据库?
【发布时间】:2015-03-24 18:03:53
【问题描述】:

下午好,

很抱歉打扰您,但我确实有一个关于需要连接到 Linux 托管数据库的 Windows Form C# 应用程序的问题。在设法完成应用程序和数据库之后,我已将数据库作为“.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);
    }
}

我不得不说这是我第一次尝试创建这样的应用程序,因此如果这似乎是一个愚蠢的问题,我深表歉意:(谢谢你,祝你有美好的一天!

【问题讨论】:

    标签: c# php mysql linux


    【解决方案1】:

    问题可能是远程 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

    【讨论】:

    • 非常感谢您的回答!关于端口开放,我刚才使用了另一个连接字符串:string MyConnection = "user id=user;" + "password=pass;" + "server=IP;" + "Trusted_Connection=true;" + "database=DB;" + "connection timeout=30;"; 但是仍然不起作用,说“Trusted_Connection”是一个无效参数,并且在通过 OleDB 尝试相同的操作后仍然无法正常工作:(
    猜你喜欢
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    相关资源
    最近更新 更多