轉載自 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