Unity 3d串連mysql

來源:互聯網
上載者:User

轉載自 http://blog.csdn.net/nette/archive/2009/07/30/4394849.aspx

 

Unity3D 串連MySql資料庫
一.在Mac OS X中架設MySql資料庫

下載mysql for Mac http://dev.mysql.com/downloads/mysql/5.0.html

可以在Mac OS X 10.2.x(“Jaguar”)和以上版本上Mac OS X使用二進位安裝軟體包的PKG格式代替二進位分發版來安裝MySQL。請注意該軟體包不支援舊版本的Mac OS X(例如,10.1.x)。

安裝軟體包位於硬碟映象(.dmg)檔案中,必須首先雙擊搜尋起中的表徵圖來安裝該檔案。應當安裝映像並顯示其內容。

注釋:在繼續安裝前,一定要使用MySQL管理器應用程式(在Mac OS X伺服器上)或通過命令列的mysqladmin shutdown關閉所有運行MySQL伺服器執行個體。

要想安裝MySQL PKG檔案,雙擊軟體包表徵圖。將啟動Mac OS X安裝軟體包安裝器,將指導你完成MySQL安裝。

Mac OS X安裝軟體包的安裝器中有一個缺陷,你會在目標盤選擇對話方塊中發現該錯誤訊息:

You cannot install this software on this disk. (null)

如果出現該錯誤,只需要點擊Go Back按鈕返回前面的視窗。然後點擊Continue再次選擇目標盤,此時應當可以正確地選擇目標盤。我們已經向Apple報告了該缺陷,它正在調查該問題。

MySQL的Mac OS X PKG安裝到/usr/local/mysql-VERSION,並且還會安裝一個符號串連,/usr/local/mysql,指向新的位置。如果有 /usr/local/mysql目錄,首先將它改名為/usr/local/mysql.bak。安裝完後,安裝器執行 mysql_install_db在MySQL資料庫中建立授權表。

安裝布局與tar檔案二進位分發版類似;所有MySQL二進位代碼位於目錄/usr/local/mysql/bin中。預設情況,MySQL通訊端檔案建立為/tmp/mysql.sock

MySQL安裝需要Mac OS X的mysql使用者賬戶。在Mac OS X 10.2及以上版本中,預設情況應存在mysql使用者賬戶。

如果正運行Mac OS X伺服器,需要安裝MySQL。隨Mac OS X伺服器版本安裝的MySQL版本如下表所示:

Mac OS X伺服器版本  MySQL版本
10.2-10.2.2         3.23.51
10.2.3-10.2.6       3.23.53
10.3                4.0.14
10.3.2              4.0.16
10.4.0              4.1.10a

節只覆蓋官方MySQL Mac OS X PKG版本。一定要閱讀Apple關於MySQL安裝的協助資訊:運行“協助視圖”應用程式,選擇“Mac OS X伺服器”協助,搜尋“MySQL”,閱讀標題為“安裝MySQL”的內容。

對於Mac OS X伺服器上已經安裝的MySQL版本,如果早於4.0,應特別注意應當使用mysqld_safe而不是safe_mysqld來啟動mysqld。

如果你前面在Mac OS X上安裝了從http://www.entropy.ch下載的Marc Liyanage的MySQL軟體包,你可以只使用該頁給出的二進位安裝布局按照更新說明來安裝。

如果你從Marc的3.23.xx 版本或從Mac OS X的MySQL伺服器版本升級到官方MySQL PKG,你還需要將已有MySQL授權錶轉換為當前格式,因為已經加了許多新的安全許可權。

如果你想在系統啟動過程中自動啟動MySQL,你還需要安裝MySQL Startup Item。在MySQL 5.1中,它是Mac OS X安裝盤映像的一部分,是一個獨立的安裝軟體包。只需要雙擊MySQLStartupItem.表徵圖並按照說明來安裝。

請注意Startup Item只需要安裝一次!不需要在以後每次升級MySQL軟體包時都安裝它。

MySQL 5.1的Startup Item安裝在/Library/StartupItems/MySQLCOM。(在MySQL 4.1.2以前的版本,安裝位置為/Library/StartupItems/MySQL,但與Mac OS X伺服器安裝的MySQL Startup Item衝突)。Startup Item安裝時在系統設定檔/etc/hostconfig中加入變數MySQLCOM=-YES-。如果你想要disable自動啟動MySQL,只需要將該變數更改為MySQLCOM=-NO-。

在Mac OS X伺服器上,預設MySQL安裝使用/etc/hostconfig檔案中的變數MySQL。MySQL AB Startup Item安裝器將其設定為MySQL=-NO-禁用該變數。這樣可以避免啟動時間與MySQL AB Startup Item使用的MySQLCOM變數衝突。但是,不會關閉啟動並執行MySQL伺服器。你應當自己關閉。

安裝完後,可以在終端視窗運行下面的命令來啟動MySQL。你必須具有管理員權限來執行該任務。

如果你已經安裝的Startup Item:

shell> sudo /Library/StartupItems/MySQLCOM/MySQLCOM start

(Enter your password, if necessary)

(Press Control-D or enter "exit" to exit the shell)

如果不使用Startup Item,輸入下面的命令序列:

shell> cd /usr/local/mysql

shell> sudo ./bin/mysqld_safe

(Enter your password, if necessary)

(Press Control-Z)

shell> bg

(Press Control-D or enter "exit" to exit the shell)

你應當能夠串連MySQL伺服器,例如,通過運行/usr/local/mysql/bin/mysql來串連。

注釋:MySQL授權表中的賬戶開始沒有密碼。啟動伺服器後,應當按照2.9節,“安裝後的設定和測試”中的說明來設定密碼。

你可以為外殼源檔案起一個別名,使它更容易訪問常用的程式,例如從命令列運行mysql和mysqladmin。tcsh文法為:

aliasMySQL /usr/local/mysql/bin/mysql
aliasMySQLadmin /usr/local/mysql/bin/mysqladmin

對於bash,使用:

aliasMySQL=/usr/local/mysql/bin/mysqlaliasMySQLadmin=/usr/local/mysql/bin/mysqladmin

最好是在PATH環境變數中加入/usr/local/mysql/bin。例如,如果外殼命令是tcsh,在$HOME/.tcshrc檔案中加入下面一行:

setenv PATH ${PATH}:/usr/local/mysql/bin

如果根目錄中沒有.tcshrc檔案,則用文字編輯器建立該檔案。

如果你對已有的安裝進行升級,請注意安裝新MySQL PKG時不會卸載舊的安裝目錄。遺憾的是,Mac OS X安裝器尚未提供功能來正確升級前面安裝的軟體包。

要想在新安裝中使用已有的資料庫,你需要將舊資料目錄中的內容複寫到新的資料目錄。執行該操作時,確保關閉新、舊伺服器。將以前安裝的MySQL資料庫檔案拷貝過來並成功啟動新的伺服器後,應當卸載舊的檔案以節省硬碟空間。並且,還應當卸掉位於/Library/Receipts/mysql-VERSION.pkg的舊版本Package Receipt目錄。

二、MySql管理工具

下載 http://dev.mysql.com/downloads/gui-tools/5.0.html

MySql預設只有使用者root並只能在本地登入,使用root登入後,添加其他的使用者。

使用者root使用者登陸
添加一個本機使用者,名為username密碼為password
GRANT ALL PRIVILEGES ON *.* TO username@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;

添加一個遠端使用者,名為username密碼為password
GRANT ALL PRIVILEGES ON *.* TO username@"%" IDENTIFIED BY 'password' WITH GRANT OPTION;

添加完使用者後要重新啟動mysql服務

三、MySql Connector/Net 1.0

http://dev.mysql.com/downloads/connector/net/1.0.html

注意:高版本不能使用;

下載Binaries,no installer版本,解壓後在bin檔案夾中有MySql.data.dll檔案。將此檔案拷貝至Assets檔案夾下,可以放在任意目錄下。然後可在C#的指令碼中使用using MySql.Data.MySqlClient;

產生的工程需要將此DLL放置在同級目錄下。並可在windows下正常使用;
四、代碼
 
using UnityEngine;
using System;
using System.Collections;
using System.Data;
using MySql.Data.MySqlClient;

public class CMySql : MonoBehaviour {
    // Global variables
    private static MySqlConnection dbConnection;
 
     static string host = "192.168.1.100";
     static string id = "mysql";
     static string pwd = "123456";
    
     static string result = "";
    
     void OnGUI()
     {
         host = GUILayout.TextField( host, 200, GUILayout.Width(200));
         id = GUILayout.TextField( id, 200, GUILayout.Width(200));
         pwd = GUILayout.TextField( pwd, 200, GUILayout.Width(200));
         if(GUILayout.Button("Test"))
         {
             string connectionString = "Server="+host+";Database=test;User ID="+id+";Password="+pwd+";Pooling=false";
             openSqlConnection( connectionString );
         }
         GUILayout.Label(result);
     } 

    // On quit
    public static void OnApplicationQuit() {
        closeSqlConnection();
    }
  
    // Connect to database
    private static void openSqlConnection(string connectionString) {
        dbConnection = new MySqlConnection(connectionString);
        dbConnection.Open();
        result = dbConnection.ServerVersion;
        Debug.Log("Connected to database."+result);
    }
  
    // Disconnect from database
    private static void closeSqlConnection() {
        dbConnection.Close();
        dbConnection = null;
        //Debug.Log("Disconnected from database."+result);
    }

    // MySQL Query
    public static void doQuery(string sqlQuery) {
        IDbCommand dbCommand = dbConnection.CreateCommand();
        dbCommand.CommandText = sqlQuery;
        IDataReader reader = dbCommand.ExecuteReader();
        reader.Close();
        reader = null;
        dbCommand.Dispose();
        dbCommand = null;
    }
}

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/nette/archive/2009/07/30/4394849.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.