在我开始开发我的应用程序之前,我一直在尝试让一些初始代码正常工作。我已经有这个工作可能一年前,所以有些东西告诉我有一个更新/版本的问题。但任何帮助都是好的。
我用apache、mariadb、php等设置了一个raspberry pi。我有一个运行apache的简单网页,所以apache很好,我有另一个从表中提取数据的网页,所以mariadb很好(很好,考虑到我的问题)。我有myphpadmin设置,可以登录创建新的数据库和用户等。
现在我想有一个uwp应用程序与我的pi上托管的db进行交互。我用select和insert创建了一个新用户,只针对一个特定的数据库(希望这能减少安全问题,但我是新用户,所以也许我希望如此)。
然后我还找到了mariadb配置文件并对bind地址行进行了注解。跳过网络行不再在文件中,所以忽略它(这就是文档所说的允许远程连接)。
我已经在我的路由器上打开了3306端口,我也有一个域名,不使用ip,但我认为这一切都很好,因为apache运行良好。看到有人在谈论ssh,我改变了ssh端口,但我不认为这是问题所在。
然后是uwp。
上一次我尝试这个方法时,我不得不使用mysql connector net6.7.9,因为更新的版本不能与rt一起工作。
现在,为了简单地测试连接,我有一个按钮和textblock,单击按钮尝试连接并输出异常/结果。曾经尝试过conn-string-builder,也只是一个直截了当的字符串,两者都不起作用。
private void ConnectDatabase_Click(object sender, RoutedEventArgs e)
{
string ConnString;
MySqlConnection Conn;
MySqlConnectionStringBuilder Csb = new MySqlConnectionStringBuilder();
Csb.Server = "http://rnd-domain.me";
Csb.Port = 3306;
Csb.UserID = "usr";
Csb.Password = "passwd";
Csb.Database = "testdb";
ConnString = "server=http://rnd-domain.me;database=testdb;uid=usr;pwd=passwd;";
Conn = new MySqlConnection(ConnString);
try
{
Conn.Open();
DbUpdateText.Text = "connected";
Conn.Close();
}
catch(Exception ex)
{
DbUpdateText.Text = ex.Message;
}
}
当我单击该按钮时,ex.message是“无法连接到任何指定的mysql主机”。应用程序没有抛出错误,只有这条无用的消息。
我在google上搜索了这个,浪费了我周日80%的时间来让它工作。我添加了sslmode=none,charset=utf8,port=3306。我尝试使用server=localhost或使用我的当前ip,甚至使用我的mariadb主用户(不是root)。
有什么问题吗?
谢谢。
编辑:我刚刚使用了pi的内部ip,得到了一个新的ex.message,理解了这个关于ssl的消息,添加了sslmode=none,所有的都在工作。
所以现在它只是绕过域名问题?
2条答案
按热度按时间lbsnaicq1#
你的连接字符串不太正确。
你可能想要这个:
提出来是没有意义的
http://
在mysql连接字符串中,因为连接不使用http协议。而是使用mysql协议。epggiuax2#
问题是在家庭网络中使用pc(客户端)和raspi(服务器)。
当我把主机改为raspi的内部ip时,一切正常。