為了做一個關於資料庫穩定性的實驗,打算在Xen的DomU(Linux)中裝一個MySQL,本以為一件很簡單的事情,結果糾結了我兩天!
開始是在Dom0中安裝MySQL,非常順利。接下來就是在DmoU中安裝MySQL了,起先用如下方法:
         1、下載MySQL的安裝檔案
   安裝MySQL需要下面兩個檔案:
   MySQL-server-4.0.16-0.i386.rpm   
   MySQL-client-4.0.16-0.i386.rpm
   下載地址為:www.mysql.com/downloads/,開啟此網頁,下拉網頁找到“Linux x86 RPM downloads”項,找到“Server”和“Client programs”項,下載需要的上述兩個rpm檔案。
   2、安裝MySQL
   rpm檔案是Red Hat公司開發的軟體安裝包,rpm可讓Linux在安裝軟體包時免除許多複雜的手續。該命令在安裝時常用的引數是
–ivh
,其中i表示將安裝指定的rmp軟體包,V表示安裝時的詳細資訊,h表示在安裝期間出現“#”符號來顯示目前的安裝過程。這個符號將持續到安裝完成後才停
止。
   1)安裝伺服器端
   在有兩個rmp檔案的目錄下執行如下命令:
   [root@test1 local]# rpm -ivh MySQL-server-4.0.16-0.i386.rpm
   顯示如下資訊。
  warning: MySQL-server-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
   Preparing…       ########################################### [100%]
   1:MySQL-server     ########################################### [100%]
  。。。。。。(省略顯示)
   /usr/bin/mysqladmin -u root password `new-password`
   /usr/bin/mysqladmin -u root -h test1 password `new-password`
  。。。。。。(省略顯示)
   Starting mysqld daemon with databases from /var/lib/mysql
   如出現如上資訊,服務端安裝完畢。測試是否成功可執行netstat看Mysql埠是否開啟,如開啟表示服務已經啟動,安裝成功。Mysql預設的埠是3306。
   [root@test1 local]# netstat -nat
   Active Internet connections (servers and established)
   Proto Recv-Q Send-Q Local Address    Foreign Address   State   
   tcp  0  0 0.0.0.0:3306   0.0.0.0:*    LISTEN   
   上面顯示可以看出MySQL服務已經啟動。
   2)安裝客戶端
   執行如下命令:
   [root@test1 local]# rpm -ivh MySQL-client-4.0.16-0.i386.rpm
   warning: MySQL-client-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
   Preparing…    ########################################### [100%]
   1:MySQL-client########################################### [100%]
   顯示安裝完畢。
   用下面的命令連線mysql,測試是否成功。
以上都沒有什麼問題,但是一旦輸入mysql命令想要登入時,就告知mysql“Access denied for user `root`@`localhost`”

在網上看了解決方法:
# /etc/init.d/mysql stop
# mysqld_safe –user=mysql –skip-grant-tables –skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(`newpassword`) where USER=`root`;
mysql> FLUSH PRIVILEGES;
mysql> quit

# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <輸入新設的密碼newpassword>
mysql>
結果還是無法登陸!
然後試圖用yum indtall mysql*(一定要是mysql*)來安裝,過程倒是很簡單,大概要安裝35個包左右。(注意第一種方法啟動MySQL服務名字是mysql,第二種MySQL服務的名字是mysqld)
可是還是不能正常登陸,幾經周折之後,決定先在Dom0裡面裝好MySQL,然後用Dom0的檔案系統做一個DomU的映象,然後啟動DomU,按照上面的方法設定好root使用者的密碼之後便可以遠端登入到DomU的MySQL資料庫了。

安裝好之後作了如下測試:
用一個客戶端往MySQL中不斷插入資料,若突然用xm shutdown或是service mysqld stop來中斷MySQL的話,資料可以完整的被插入(115011條);若用xm destroy來中斷MySQL的話,則發現會有大量資料丟失(應插入:112069,實際插入28920)。