因为换了一个笔记本,所以要把旧笔记本上的unity工程移植到新笔记本上。但是打开工程时,其他程序正常,只有连接MySQL的程序读取不了数据。报错如下:
百度了一波,实在找不到这个TLS异常是个什么问题。按照最后说法,是unity内部错误。重新安装unity,vs,MySQL Connector Net 6.9.9,都不管用。后来想想,我为啥要执着于原来方法,其实也有其他方法可以连接MySQL,正因为有了这个换个思路的想法,于是想碰碰运气试试v4.5的插件,然后一下子搞定了。之前我都是用的v4.0中的dll。
数据库使用的是mysql8.0.25,安装MySQL Connector Net 6.9.9。把下面文件夹中的第一个dll拖进unity中,附上后面的代码。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MySql.Data.MySqlClient;
using UnityEngine.UI;
public class Mysql1 : MonoBehaviour
{
public Text test1;
// Start is called before the first frame update
void Start()
{
string constructorString = "datasource=localhost;port=3306;database=move1;user=root;pwd=123456;";
MySqlConnection conn = new MySqlConnection(constructorString);
try
{
conn.Open();
Debug.Log("已经建立连接");
string sql = "select * from table1 where id=1;";
MySqlCommand cmd = new MySqlCommand(sql, conn);
MySqlDataReader rdr = cmd.ExecuteReader();
if (rdr.Read())
{
test1.text = rdr.GetString("status");
}
}
catch (MySqlException ex)
{
Debug.Log(ex.Message);
}
finally
{
conn.Close();
Debug.Log("关闭");
}
}
// Update is called once per frame
void Update()
{
}
}
之前在三台电脑上,同样的设置方法,同样的程序都可以跑出来,所以形成了惯性思维,总感觉可能安装的时候哪里有问题。遇到问题还是要冷静分析,找不到方法,那就一个个试,总会找到解决方法。如果这一次解决不了,下次不知道什么时候才会解决,所以尽量一次性解决,一是可以增加解决问题的自信心,二是可以享受解决问题后的畅快喜悦。