Unity连接MySQL编辑器可用,发布到APK后连接失败

Unity项目在编辑器中可以成功连接MySQL,但发布为APK后在安卓设备上连接失败。问题源于代码中使用了127.0.0.1作为数据库连接地址,而应改为本机IP地址。此外,还需要确保MySQL服务器允许该IP访问,通过修改user表中的Host字段为 '%'。遵循这些步骤可以解决连接问题。
摘要由CSDN通过智能技术生成

问题描述

毕设作品需要使用MySQL设计实现题库测试系统,在电脑上制作完成后调试一切顺利,但是发布成APK在安卓运行时却连接失败,无法读取数据库。


原因分析:

通过查阅各位大佬的解决方法,大致如下:
1:正确导入插件。把下图几个插件导入Unity中Assets的Plugins文件夹(只传I18N.dll 、I18N.CJK.dll、I18N.West.dll三个也可,在Unity的2019.4.34f1c1\Editor\Data\MonoBleedingEdge\lib\mono文件夹内,注意版本要兼容,选择能够正确导入的即可)
在这里插入图片描述

2:设置Player setting。在Player/Other settings里找到API Compatibility Level,设置为.NET.4.x(我的unity版本是2019.4.34f1c1)。在这里插入图片描述
但是我按各位大佬的方法设置好后依旧无法成功。最后发现代码设置不对,在建立MySQL连接时,需要设置为电脑本机的ip地址而不是127.0.0.1。


解决方案:

获得本机ip地址的方法:
1、任务栏输入”CMD"打开命名提示符
2

Unity连接MySQL并读取数据,你可以使用C#的MySQL Connector/NET库来执行查询操作。以下是一个简单的示例: 1. 确保你已经按照上述步骤成功连接MySQL数据库。 2. 在需要读取数据的脚本中,添加以下代码: ```csharp using System.Collections; using System.Collections.Generic; using UnityEngine; using MySql.Data.MySqlClient; public class ReadDataFromMySQL : MonoBehaviour { // Use this for initialization void Start () { string connStr = "server=[YOUR SERVER IP];user=[YOUR USERNAME];database=[YOUR DATABASE NAME];port=[YOUR PORT NUMBER];password=[YOUR PASSWORD]"; MySqlConnection conn = new MySqlConnection(connStr); try { Debug.Log("Connecting to MySQL..."); conn.Open(); Debug.Log("Connected to MySQL!"); // 执行查询 string query = "SELECT * FROM [YOUR TABLE NAME]"; MySqlCommand cmd = new MySqlCommand(query, conn); MySqlDataReader reader = cmd.ExecuteReader(); // 读取数据 while (reader.Read()) { // 根据表结构读取数据 int id = reader.GetInt32(0); string name = reader.GetString(1); int age = reader.GetInt32(2); // 在控制台输出数据 Debug.Log("ID: " + id + ", Name: " + name + ", Age: " + age); } reader.Close(); } catch (MySqlException ex) { Debug.Log("Error connecting to MySQL: " + ex.ToString()); } conn.Close(); Debug.Log("Disconnected from MySQL."); } // Update is called once per frame void Update () { } } ``` 3. 在connStr字符串中将[YOUR SERVER IP]替换为您的MySQL服务器的IP地址,将[YOUR USERNAME]替换为您的MySQL用户名,将[YOUR DATABASE NAME]替换为您要连接数据库的名称,将[YOUR PORT NUMBER]替换为您的MySQL服务器的端口号,将[YOUR PASSWORD]替换为您的MySQL用户的密码。将[Your Table Name]替换为您要从中读取数据的表名。 4. 运行游戏并查看控制台,你将看到从MySQL数据库读取的数据。 这是基本的读取MySQL数据的步骤。根据你的表结构和需求,你可以调整查询语句和读取数据的方式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值