程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 在Ubuntu下的MySQL數據庫如何更改存儲位置

在Ubuntu下的MySQL數據庫如何更改存儲位置

編輯:關於MYSQL數據庫

  MySQL數據庫的文件結構是怎麼樣的呢,對於這樣子創建的數據庫命令:

  CREATE DATABASE MySQLdb

  在默認的數據庫存儲位置下就會有個文件夾MySQLdb。要操作數據庫首先得停止數據庫進程:

  $sudo /etc/init.d/MySQL stop

  本文以轉移到/home/MySQL這個位置為例,下面命令將原有數據庫轉移到新位置:

  $sudo cp –R –p /var/lib/mysql /home/MySQL

  編輯MySQL配置文件:

  $gksu gedit /etc/MySQL/my.cnf

  在 gedit中找到datadir這一行,將後面等於號之後的內容更改為/home/MySQL然後保存退出。自Ubuntu 7.10開始,

  Ubuntu就開始使用一種安全軟件叫做AppArmor,這個安全軟件會在你的文件系統中創建一個允許應用程序訪問的區域(專業術語:應 用程序訪問控制)。如果不為MySQL修改AppArmor配置文件,永遠也無法為新設置的數據庫存儲位置啟動

  數據庫服務。配置AppArmor:

  $sudo nano /etc/apparmor.d/usr.sbin.MySQLd

  在gedit中找到/var/lib/MySQL/這兩行,注釋掉這兩行,在這兩行前分別添加一個符號“#”即可注釋,在這兩行之前或

  之後加上下面內容:

  /home/MySQL/ r,

/home/MySQL/** rwk,

保存後退出,執行命令:

  $sudo /etc/init.d/apparmor reload

  返回Reloading AppArmor profiles : done.即可以重啟MySQL服務:

  $sudo /etc/init.d/MySQL start

  至此MySQL數據庫存儲位置就更改完畢了。

  FAQ:

  Q:當我運行$sudo /etc/init.d/apparmor reload卻返回信息

  Skipping profile /etc/apparmor.d/usr.sbin.MySQLd~

: Warning.

  並且也無法啟動MySQL服務,怎麼辦呢?

  A:出 現這個問題可能是因為你使用了$sudo gedit或$gksu gedit這樣子的命令來編輯usr.sbin.mysqld這個配置文件的,這兩個圖形界面文本編輯器會在相同位置生成一個 usr.sbin.mysqld~的文件,從而影響了AppArmor讀取配置文件,出現這個問題先刪除這個usr.sbin.MySQLd~文件:

  $sudo rm /etc/apparmor.d/usr.sbin.MySQLd~

  然後使用$sudo nano這個終端文本編輯器來編輯配置文件即可。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved