我遇到了以下问题:我在笔记本电脑上运行 MySql Server(ip 192.168.1.10),我正在 Android Studio 中创建应用程序,该应用程序应将我连接到与笔记本电脑位于同一本地网络上的数据库,我在我的手机,但出现错误“错误消息:无法创建与数据库服务器的连接。”但最有趣的是,第三方应用程序通过我手机上的相同IP连接到数据库,但我的应用程序却没有。有谁知道如何解决吗?
Button button;
button = findViewById(R.id.button);
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (isNetworkAvailable()) {
try (Connection connection = DriverManager.getConnection(
"jdbc:mysql://192.168.1.10:3306/sakila", "boxapp", "12345"
)) {
Log.d("huyblya", "Connected to database");
} catch (SQLException e) {
// Виводимо повний стек винятків
e.printStackTrace();
// Виводимо текстове опис помилки
Log.d("huyblya","Error message: " + e.getMessage());
// Виводимо код помилки
Log.d("huyblya","Error code: " + e.getErrorCode());
// Виводимо SQL стан
Log.d("huyblya","SQL state: " + e.getSQLState());
}
} else {
Log.d("huyblya", "No internet connection");
}
}
});
huyblya com.example.connecttodb D 错误消息:无法创建 连接到数据库服务器。
huyblya com.example.connecttodb D 错误代码:0
huyblya com.example.connecttodb D SQL 状态:08001
也许这个数据库不太适合这里?那么使用哪个服务器数据库比较好呢?
我尝试更改连接链接,添加参数+搜索了半个互联网,但不想连接到任何东西。 我启用了使用 Internet 以及 JDBC 连接器的权限。 一切都可以通过笔记本电脑上的 localhost 或 127.0.0.1 运行,但不能通过手机运行(
这可能是本地网络问题;确保启用“LAN 到 WiFi 桥接器”(或者可以在路由器的 Web GUI 中调用它)。这实际上是两个不同的子网,可能会或可能不会桥接。对于本地开发,最好将 MySQL 实例放入与 Android 模拟器相同的子网中(这将全部在虚拟子网中的本地主机上运行,不需要路由器,非常便携)。