前面做游戏在线排行榜用了其他人的网页数据库,感觉访问太慢了,就只能自己从头来过了。
首先是在阿里云上购买云数据库,购买完后等个几分钟就有实例了
点击实例ID进入基本信息页面,然后点击设置白名单
我为了测试,公网上可直接进行访问,当然还是建议不要这样设置
点击左侧的账号管理,进行账号的创建,这里我创建了一个管理员的账号,此后的id和pwd就都是这里账号的id和密码
然后再点击左侧的数据库管理,进行数据库的创建
创建完账号和数据库后,我们就可以通过账号进行登录数据库了。但为了能更方便的连接Unity,我们还需要安装MySql和Navicat,MySqL的安装我就不介绍了,主要是对Navicat进行破解安装并连接上我们的云数据库。
我在这里贴上下载地址https://pan.baidu.com/s/1oJWq31wKGJXOhwJCPDftIQ,提取码:nqjn
下载完后将两个包解压,然后点击红框进行安装
安装完后不要打开,点击红框上的exe文件会出现一个下面的窗口,再点击右上角的Patch,就会出现文件选择,选择刚刚安装的文件目录下的exe文件即可
然后打开该exe文件,就会出现数据库的操作界面,现在还是未破解的。点击帮助中的注册按钮,选择手动激活,将出现的一段码复制到Navicat Products的Request Code中再点击Generate,下面就会出现破解码,将破解码复制到手动激活的界面中,点击激活,就可以破解了。(由于我已经破解了,所以没有这个界面了。。)
现在就开始建立连接吧。点击连接,选择阿里云数据库MySql版
这里的连接名自己设置,主机为实例ID(就是那一串乱码,我还找半天IP地址。。),用户名和密码为前面创建的账号,点击连接,这样就大功告成啦。可以在这里直接对数据库进行操作,也可以在阿里云官网登录数据库进行操作。(其实都可以)
接下来就是和unity的连接。新建一个项目,由于需要MySql的配置文件,所以需要在项目中导入MySql.Data.dll,其实在网上找的版本还不一定对,可以直接在本地的MySql文件中找到这个文件,将其导入。(可以在C盘中搜索 )
然后建一个C#脚本,创建一个MySql的类,我就为了测试是否可以连接,建了一个表str,实现了创建和查询两个操作。
(需要头文件using MySql.Data.MySqlClient;)
using System.Collections; using System.Collections.Generic; using UnityEngine; using MySql.Data.MySqlClient; using System; using System.Data; public class MySQLManager { public static MySqlConnection SqlConnection; //对象 private static string host; //IP地址 private static string id; //用户名 private static string pwd; //密码 private static string dataBase; //数据库名 private static string table; //表名 public MySQLManager(string _host, string _id, string _pwd, string _dataBase) { host = _host; id = _id; pwd = _pwd; dataBase = _dataBase; table = "str"; OpenSql(); } /// ///打开数据库 /// public void OpenSql() { try { string SqlString = string.Format("Database={0};Data Source={1};User Id={2};Password={3};", dataBase, host, id, pwd, "3306"); SqlConnection = new MySqlConnection(SqlString); SqlConnection.Open(); Debug.Log("打开数据库"); } catch (Exception e) { Debug.Log("服务器连接失败,请重新检查是否打开MySql服务。" + e.Message.ToString()); } } /// <summary> /// 查询数据 /// </summary> public string SelectData(string id)//查询,读取数据 { OpenSql(); try { string read_sql = "select answer from str where id = " + id;//sql命令,选择user1表 MySqlCommand read_cmd = new MySqlCommand(read_sql, SqlConnection); MySqlDataReader reader = read_cmd.ExecuteReader(); while (reader.Read()) { // } string data = reader[0].ToString(); return data; } catch (Exception e) { Debug.Log("Error"); return null; } finally { Close(); } } /// <summary> /// 插入数据 /// </summary> public void Insert(string col, string values) { OpenSql(); try { string query = "insert into " + table + " values(" + col + "," + values + ");"; MySqlCommand read_cmd = new MySqlCommand(query, SqlConnection); MySqlDataReader reader = read_cmd.ExecuteReader(); } catch (Exception e) { Debug.Log("Error"); } finally { Close(); } } public void Close() { if (SqlConnection != null) { SqlConnection.Close(); SqlConnection.Dispose(); SqlConnection = null; } Debug.Log("关闭数据库"); } }
再创建一个Test脚本进行测试,将主机地址,用户名,密码和数据库名称填上,再调用插入和查询两个操作,运行看看。
运行成功啦,这样我们就完成了基本的连接,后面需要的操作其实就是往管理类中加入方法,如果要做排行榜,或者插入的数据需要排序的话就需要在语句后面添加命令语句就可以实现啦。