MySQL數(shù)據(jù)庫的文件結(jié)構(gòu)是怎么樣的呢,對于這樣子創(chuàng)建的數(shù)據(jù)庫命令:
CREATE DATABASE mysqldb
在默認(rèn)的數(shù)據(jù)庫存儲位置下就會有個文件夾mysqldb。要操作數(shù)據(jù)庫首先得停止數(shù)據(jù)庫進(jìn)程:
$sudo /etc/init.d/mysql stop
本文以轉(zhuǎn)移到/home/mysql這個位置為例,下面命令將原有數(shù)據(jù)庫轉(zhuǎn)移到新位置:
$sudo cp –R –p /var/lib/mysql /home/mysql
編輯MySQL配置文件:
$gksu gedit /etc/mysql/my.cnf
在 gedit中找到datadir這一行,將后面等于號之后的內(nèi)容更改為/home/mysql然后保存退出。自Ubuntu 7.10開始,
Ubuntu就開始使用一種安全軟件叫做AppArmor,這個安全軟件會在你的文件系統(tǒng)中創(chuàng)建一個允許應(yīng)用程序訪問的區(qū)域(專業(yè)術(shù)語:應(yīng) 用程序訪問控制)。如果不為MySQL修改AppArmor配置文件,永遠(yuǎn)也無法為新設(shè)置的數(shù)據(jù)庫存儲位置啟動
數(shù)據(jù)庫服務(wù)。配置AppArmor:
$sudo nano /etc/apparmor.d/usr.sbin.mysqld
在gedit中找到/var/lib/mysql/這兩行,注釋掉這兩行,在這兩行前分別添加一個符號“#”即可注釋,在這兩行之前或
之后加上下面內(nèi)容:
/home/mysql/ r, /home/mysql/** rwk,
保存后退出,執(zhí)行命令:
$sudo /etc/init.d/apparmor reload
返回Reloading AppArmor profiles : done.即可以重啟MySQL服務(wù):
$sudo /etc/init.d/mysql start
至此MySQL數(shù)據(jù)庫存儲位置就更改完畢了。
FAQ:
Q:當(dāng)我運(yùn)行$sudo /etc/init.d/apparmor reload卻返回信息
Skipping profile /etc/apparmor.d/usr.sbin.mysqld~ : Warning.
并且也無法啟動MySQL服務(wù),怎么辦呢?
A:出 現(xiàn)這個問題可能是因為你使用了$sudo gedit或$gksu gedit這樣子的命令來編輯usr.sbin.mysqld這個配置文件的,這兩個圖形界面文本編輯器會在相同位置生成一個 usr.sbin.mysqld~的文件,從而影響了AppArmor讀取配置文件,出現(xiàn)這個問題先刪除這個usr.sbin.mysqld~文件:
$sudo rm /etc/apparmor.d/usr.sbin.mysqld~
然后使用$sudo nano這個終端文本編輯器來編輯配置文件即可。