服务器买的是腾讯云的,系统是 CentOS。
管理工具用的是万胜云面板(好像也叫宝塔),数据库都是在这里面整的,用到的表提前在里面创建好了
using MySql.Data.MySqlClient; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class MySqlManager : Singleton数据库管理脚本,提供的连接服务器,以及登录、注册功能{ protected static string m_databaseIP = "111.50.100.200"; //IP地址 protected static string m_databasePort = "3306"; //端口号 protected static string m_userID = "SrarSharkDataTest"; //MySQL数据库用户名 protected static string m_password = "StarShark1234"; //MySQL登陆密码 protected static string m_databaseName = "srarsharkdataall"; //链接的数据库的库名 protected static string m_connectionString; // 数据库连接字符串 public static MySqlConnection connection; /// /// 测试是否链接上数据库 /// ///public bool TestConnection() { bool isConnected = true; //发送数据库连接字段 创建连接通道 using (MySqlConnection connection = new MySqlConnection(m_connectionString)) { try { //打开连接通道 connection.Open(); Debug.Log("打开了数据库"); } catch (MySqlException E) { //如果有异常 则连接失败 isConnected = false; throw new Exception(E.Message); } finally { //关闭连接通道 connection.Close(); Debug.Log("关闭数据库"); } } return isConnected; } /// /// 初始化数据库,利用字符串组拼方式来编写数据库的连接 /// public static void Init() { // m_connectionString = string.Format("Server = {0};port={4};Database = {1}; User ID = {2}; Password = {3};", m_databaseIP, m_databaseName, m_userID, m_password, "3306"); m_connectionString = string.Format("Server = {0}; port = {1}; Database = {2}; User ID = {3}; Password = {4}; Pooling=true; Charset = utf8;", m_databaseIP, m_databasePort, m_databaseName, m_userID, m_password); //发送数据库连接字段 创建连接通道 using (connection = new MySqlConnection(m_connectionString)) { try { //打开连接通道 connection.Open(); Debug.Log("打开了数据库"); } catch (MySqlException E) { //如果有异常 则连接失败 Debug.Log("连接失败"); throw new Exception(E.Message); } finally { //关闭连接通道 connection.Close(); Debug.Log("关闭数据库"); } } Debug.Log(m_connectionString); } //登录验证 public void Click_login(string username, string password) { // MySqlManager.Instance.QuerySpacificDataFromTable("StarSharkData", "UserPassword", "1"); try { connection.Open(); Debug.Log("------输入的用户名---" + username + "-密码-" + password); string sqlQuary = "select * from StarSharkData where UserName ='" + username + "' and UserPassword = '" + password + "'"; MySqlCommand comd = new MySqlCommand(sqlQuary, connection); MySqlDataReader reader = comd.ExecuteReader(); if (reader.Read()) { Debug.Log("------用户存在,登录成功!------"); //进行登入成功后的操作,例如进入新场景。。。 } else { Debug.Log("------用户不存在,请注册。或请检查用户名或和密码!------"); } } catch (System.Exception e) { Debug.Log(e.Message); } finally { connection.Close(); } } //注册验证 public void Click_register(string username, string password) { if (!(username.Length > 0 && password.Length > 0)) { Debug.Log("-----用户名和密码必须>0------"); return; } try { connection.Open(); Debug.Log("-----连接成功!------"); string sqlQuary = "select * from StarSharkData where UserName =@paral1 and UserPassword = @paral2"; MySqlCommand comd = new MySqlCommand(sqlQuary, connection); comd.Parameters.AddWithValue("paral1", username); comd.Parameters.AddWithValue("paral2", password); //comd.Parameters.AddWithValue("paral0", 0);id=@para10 and MySqlDataReader reader = comd.ExecuteReader(); if (reader.Read()) { Debug.Log("-----用户名已存在,请重新输!------"); connection.Close(); } else { connection.Close(); Insert_User(username, password); } } catch (System.Exception e) { Debug.Log(e.Message); } finally { connection.Close(); } } }
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class MySqlTest : MonoBehaviour
{
public Button SignIn;//登录按钮
public Button Register;//注册按钮
public Button Activation; //测试激活按钮
public InputField InputUser;//用户名输入框
public InputField InputPassword;//密码输入框
// Start is called before the first frame update
void Start()
{
//初始化
MySqlManager.Init();
//登陆,点击事件
SignIn.onClick.AddListener(()=>
{
MySqlManager.Instance.Click_login(InputUser.text, InputPassword.text);
});
//注册,点击事件
Register.onClick.AddListener(()=>
{
MySqlManager.Instance.Click_register(InputUser.text, InputPassword.text);
});
}
测试登录和注册的用户脚本
运行后的结果



