更改MySQL資料檔案存放目錄位置
實現思路:移動資料目錄,更改配置檔案
需求:新加了一個硬碟,想把MySQL資料庫目錄放到新的硬碟裡面。
伺服器環境:新硬碟掛載點為/var/local,系統是Ubuntu 14.04 LTS,MySQL使用預設命令安裝。
1
|
$ sudo
apt-get install
mysql-server mysql-client #MySQL安裝命令 |
步驟重現:
- 停止MySQL服務
1
|
$ sudo
service mysql stop #停止MySQL服務 |
- 移動MySQL資料檔案存放目錄
1
|
$ sudo
mv /var/lib/mysql/
/var/local/ #資料檔案預設位置是/var/lib/mysql/ |
- 更改MySQL配置檔案my.cnf
1
|
$ sudo
vi /etc/mysql/my .cnf
#編輯配置檔案 |
datadir = /var/lib/mysqldatadir = /var/local/mysql
- 啟動MySQL服務
1
2
|
$ sudo
service mysql start #啟動MySQL服務 start: Job failed to start |
重啟失敗!於是決定去檢視日誌,一探究竟。
1
|
$ tail
/var/log/mysql/error .log
#編輯檢視錯誤日誌 |
140728 16:29:09 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
140728 16:29:09 [Note] Plugin ‘FEDERATED’ is disabled.
^G/usr/sbin/mysqld: Can’t find file: ‘./mysql/plugin.frm’ (errno: 13)
140728 16:29:09 [ERROR] Can’t open the mysql.plugin table. Please run mysql_upgrade to create it.
140728 16:29:09 InnoDB: The InnoDB memory heap is disabled
140728 16:29:09 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140728 16:29:09 InnoDB: Compressed tables use zlib 1.2.8
140728 16:29:09 InnoDB: Using Linux native AIO
140728 16:29:09 InnoDB: Initializing buffer pool, size = ***.0M
140728 16:29:09 InnoDB: Completed initialization of buffer pool
140728 16:29:09 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: ‘open’.
InnoDB: Cannot continue operation.
說是許可權不夠啊,”./mysql/plugin.frm”檔案是在的啊,百思不得其姐啊,檢視許可權後,哥更改檔案擁有者。
1
|
$ sudo
chown mysql -R
/var/local/mysql/ #更改檔案擁有者 |
接著又重啟,依舊抱同樣的錯。於是又使用各種搜尋引擎。終於搜尋到一篇神帖http://zhanggang.net/2010/08/03/38170.htm,找到了”/etc/apparmor.d/usr.sbin.mysqld”這個檔案,關鍵就是這個檔案了。
1
|
$ sudo
vi /etc/apparmor .d /usr .sbin.mysqld |
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
/var/local/mysql/ r,
/var/local/mysql/** rwk,
注:AppArmor是一個高效和易於使用的Linux系統安全應用程式,我並沒有像神貼一樣在my.cnf檔案中找到關於/etc/apparmor.d/usr.sbin.mysqld的提示,可能是版本不一樣的原因。
- 啟動MySQL服務
1
|
$ sudo
service mysql start #啟動MySQL服務,順利啟動^_^ |
相關文章
- 更改MySQL資料檔案目錄位置MySql
- Linux CentOS更改MySQL資料庫目錄位置LinuxCentOSMySql資料庫
- MySQL檔案目錄格式及存放位置MySql
- 更改資料檔案位置或改名
- MySQL 更改資料庫資料儲存目錄MySql資料庫
- mysql移動資料存放目錄及問題薦MySql
- mysql之 表資料存放路徑非datadir目錄MySql
- Ubuntu 上更改 MySQL 資料庫資料儲存目錄UbuntuMySql資料庫
- mysql資料目錄下的常見檔案MySql
- 更改資料庫裸裝置資料檔案的位置資料庫
- 修改預設MYSQL資料庫data存放位置MySql資料庫
- 更改Oracle檔案位置Oracle
- PDB資料檔案的線上位置以及檔名更改
- Win10系統更改庫資料夾存放位置的方法Win10
- Web前端——檔案存放位置規範Web前端
- MySQL-02.MySQL的資料目錄和表檔案解析MySql
- php.ini 檔案存放位置不對?PHP
- AWR取樣資料存放位置
- 帝國CMS備份資料壓縮存放目錄
- 【MySQL 資料庫】MySQL目錄MySql資料庫
- 更改Listener日誌檔案的位置
- makefile有關問題,想像vs一樣將目標檔案,輸出檔案存放在指定資料夾,而不是在原始檔的目錄
- raw 裸裝置資料檔案更改其他raw裸裝置位置
- 利用拷貝data目錄檔案的方式遷移mysql資料庫MySql資料庫
- 修改Oracle資料檔名及資料檔案存放路徑Oracle
- Linux更改檔案及目錄許可權問題Linux
- Ubuntu更改主目錄檔名為英文Ubuntu
- 資料檔案位置調整
- 關於使用 Vagrant 作為開發環境,MySQL 資料庫資料存放目錄遷移的問題開發環境MySql資料庫
- Linux 只複製目錄,不復制目錄下的資料檔案Linux
- 將ORACLE資料庫資料檔案遷移到其他目錄(ZT)Oracle資料庫
- 沒有目錄建目錄,沒有檔案建檔案
- wdcp修改mysql的資料目錄MySql
- 瞭解MySQl資料庫目錄MySql資料庫
- mysql資料目錄結構(轉)MySql
- 複製指定源位置的多級資料夾下所有檔案到指定目標位置
- 前端學習程式碼目錄存放前端
- 【LOB】使用資料泵時 LOB 欄位存放位置