Unity连接MySQL踩坑,问题处理记录

本文详细介绍了如何在Unity2021项目中集成MySQL8.0,包括安装步骤、DLL文件配置、连接代码示例以及处理常见连接错误的方法,如SSL模式、密码验证等。
摘要由CSDN通过智能技术生成

用的unity2021版本,MySQL是官方下载的最新版8.0.36.

安装MySQL时,过去如果安装过,一定要删干净,单纯的卸载不行,网上有很多教程。

MySQL安装完成后,将安装目录的MySql.Data.dll文件放入unity项目的Plugins文件夹,Plugins文件夹如果没有,在Assets目录下创建一个。

接着打开unity安装目录的C:\Program Files\Unity 2021.1.4f1\Editor\Data\MonoBleedingEdge\lib\mono\unityjit文件夹,将里面的

五个文件复制后放入项目的Plugins文件夹。

如果有报错尝试调整下player setting的这两个地方,可能根据unity版本和mysql版本的不一样此处选项也不一样,我这样设备没有报错了。

如果还有关于MySql.Data.dll文件的报错,具体报错代码我忘记了,可能是MySql.Data.dll文件的版本问题,去网上找一个低版本(8.0以下版本)的MySql.Data.dll文件。

然后是unity连接MySQL的代码

 public static MySqlConnection mysql;
    static string ip = /*"localhost"*/"127.0.0.1";
    static string port = "3306";
    static string database = "user";
    static string user = "root";
    static string password = "123456";
    void Start()
    {
        string connectionString = string.Format("server={0};port={1};database={2};user={3};password={4};SslMode=none",ip, port, database, user, password);
        mysql = new MySqlConnection(connectionString);
        Debug.Log("数据库链接成功");

    }
   public void Load()
    {
        try
        {
            mysql.Open();
            string _username = userIF.text;
            string _password = passwordIF.text;
            MySqlCommand command = new MySqlCommand("select * from users where username=@_username and password=@_password", mysql);
            command.Parameters.AddWithValue("_username", _username);
            command.Parameters.AddWithValue("_password", _password);
            MySqlDataReader md = command.ExecuteReader();
            if (md.Read())
            {
                Debug.Log("登陆成功");
                GlobalData.userName = _username;
                Debug.Log(GlobalData.userName);
                SceneManager.LoadScene("Main");
            }
            else
            {
                xiaoxi.text = "账户或密码不正确!";
            }
        }
        finally {

            mysql.Close();
        }

    }

如果在执行   mysql.Open();时报了连接器的错误,则需要给mysql安装或者更新.net连接器。在mysql Installer中更新。

如果报了关于握手的问题,则需要在连接代码中添加SslMode=none。

如果报了密码验证问题:

MySql.Data.MySqlClient.MySqlException:“Authentication method ‘caching_sha2_password’ not supported by any of the available plugins.”

则需要在C:\ProgramData\MySQL\MySQL Server 8.0文件夹中 给my.ini文件中添加字段:

然后打开MySQL,请如下操作:

        1.1:ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 

        1.2:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码 

        1.3:FLUSH PRIVILEGES; #刷新权限 

        1.4:再重置下密码:alter user 'root'@'localhost' identified by '123456';

 最后在服务程序中重启mySQL.

现在已经可以在unity中正常访问mySQL了。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity连接MySQL数据库可以通过使用MySQL Connector/NET来实现。下面是一些基本步骤: 1. 下载并安装MySQL Connector/NET:首先,你需要从MySQL官方网站下载并安装MySQL Connector/NET。这是一个用于在.NET应用程序中连接和操作MySQL数据库的驱动程序。 2. 导入MySQL Connector/NET到Unity项目:在Unity中,你需要将MySQL Connector/NET的DLL文件导入到项目中。可以将DLL文件直接拖放到Unity的Assets文件夹中。 3. 编写连接代码:在Unity中,你可以使用C#编写代码来连接MySQL数据库。首先,你需要在代码中引入MySQL Connector/NET的命名空间。然后,使用连接字符串来指定数据库连接信息,包括服务器地址、用户名、密码等。最后,使用MySQL Connector/NET提供的类和方法来执行数据库操作,如查询、插入、更新等。 以下是一个简单的示例代码,展示了如何连接MySQL数据库并执行查询操作: ```csharp using System; using MySql.Data.MySqlClient; public class MySQLConnector : MonoBehaviour { private MySqlConnection connection; private string server = "localhost"; private string database = "your_database_name"; private string uid = "your_username"; private string password = "your_password"; void Start() { string connectionString = $"Server={server};Database={database};Uid={uid};Pwd={password};"; connection = new MySqlConnection(connectionString); try { connection.Open(); Debug.Log("Connected to MySQL database!"); // 执行查询操作 string query = "SELECT * FROM your_table_name"; MySqlCommand cmd = new MySqlCommand(query, connection); MySqlDataReader dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { // 处理查询结果 string column1 = dataReader.GetString(0); string column2 = dataReader.GetString(1); Debug.Log($"Column 1: {column1}, Column 2: {column2}"); } dataReader.Close(); } catch (Exception e) { Debug.Log("Error connecting to MySQL database: " + e.Message); } finally { connection.Close(); } } } ``` 请注意,上述代码仅为示例,你需要根据你的实际情况进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值