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

用的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了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/572473.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【QT】:基本框架

基本框架 一.创建程序二.初识函数1.main2.Widget.h3.Wight.cpp4.Wight.ui5.文件名.pro 三.生成的中间文件 本系列的Qt均使用Qt Creator进行程序编写。 一.创建程序 二.初识函数 1.main 2.Widget.h 3.Wight.cpp 4.Wight.ui 此时再点击编辑,就看到了ui文件的本体了。…

YOLOv8全网独家改进: 红外小目标 | 注意力机制改进 | 并行化注意力设计(PPA)模块,红外小目标暴力涨点| 2024年3月最新成果

💡💡💡本文独家改进:红外小目标涨点利器,在多个数据集下进行验证,并行化 patch-aware 注意力(PPA)模块,解决目标的大小微小以及红外图像中通常具有复杂的背景的问题点,2024年3月最新成果 💡💡💡红外小目标实现暴力涨点,只有几个像素的小目标识别率大幅度提…

Java基础-多线程基础

文章目录 1.线程相关概念1.程序2.进程3.线程4.单线程5.多线程6.并发7.并行查看当前电脑cpu数量 2.线程基本使用1.线程类图2.继承Thread创建线程细节说明代码实例 3.实现Runnable来创建线程(包括静态代理演示)代码实例 3.多线程机制简要介绍代码实例为什么…

day 36 贪心算法 part05● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

一遍过。首先把区间按左端点排序,然后右端点有两种情况。 假设是a区间,b区间。。。这样排列的顺序,那么 假设a[1]>b[0],如果a[1]>b[1],就应该以b[1]为准,否则以a[1]为准。 class Solution { public:static bo…

相位解包裹前识别有效区域和无效区域(条纹和背景区域区分)

对于不连续场进行相位解包的时候,首先要识别出图象中的哪些部分为有效数据,哪些部分为非有效数据"。这不仅关乎着相位解包算法的速度,更影响着解包算法的精度。因此在解包之前,对有效区域和无效区域的判断必须是首先要做的一件事情。下面就来介绍一下什么是有效区域和…

C语言程序编译与链接(拓宽视野的不二之选)

文章目录 翻译环境和运行环境翻译环境预处理编译汇编链接 运行环境 翻译环境和运行环境 1,在ANSI C的任何⼀种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执⾏的机器指 令(⼆进制指令&#…

高级数据结构与算法习题(5)

一、单选题 1、Which of the following binomial trees can represent a binomial queue of size 42? A.B0​ B1​ B2​ B3​ B4​ B5​ B.B1​ B3​ B5​ C.B1​ B5​ D.B2​ B4​ 解析:B。要表示一共含有42个节点的二项队列,我们不妨将42表示成为一个二进制形式:,…

iOS_convert point or rect 坐标和布局转换+判断

文章目录 1. 坐标转换2. 布局转换3. 包含、相交 如:有3个色块 let view1 UIView(frame: CGRect(x: 100.0, y: 100.0, width: 300.0, height: 300.0)) view1.backgroundColor UIColor.cyan self.view.addSubview(view1)let view2 UIView(frame: CGRect(x: 50.0, …

连接数据库(MySQL)的JDBC

目录 JDBC简介快速入门API详解DriverManager(驱动管理类)注册驱动:获取数据库连接(对象): Connection(数据库连接对象)获取执行SQL的对象管理事务 Statement(执行SQL语句)执行DML、DDL语句执行DQL语句 Resu…

BaseDao封装JavaWeb的增删改查

目录 什么是BaseDao? 为什么需要BaseDao? BaseDao的实现逻辑 什么是BaseDao? Basedao 是一种基于数据访问对象(Data Access Object)模式的设计方法。它是一个用于处理数据库操作的基础类,负责封装数据库…

深度学习目标检测算法之RetinaNet算法

文章目录 前言RetinaNet 算法原理1.RetinaNet 简介2.backbone 部分3.FPN特征金字塔4.分类和预测5.Focal Loss 结束语 💂 个人主页:风间琉璃🤟 版权: 本文由【风间琉璃】原创、在CSDN首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注…

代码学习记录29----贪心算法

随想录日记part29 t i m e : time: time: 2024.03.27 主要内容:今天深入学习贪心算法,接下来是针对题目的讲解:1. 无重叠区间 2.划分字母区间 3. 合并区间 435. 无重叠区间763.划分字母区间56. 合并区间 T…