Ubuntu修改MySQL數(shù)據(jù)庫(kù)datadir目錄

概述

本文描述了在Ubuntu 16.04系統(tǒng)下修改mysql-server-5.7數(shù)據(jù)庫(kù)datadir目錄的詳細(xì)步驟。目標(biāo):將數(shù)據(jù)庫(kù)目錄datadir/var/lib/mysql修改到/home/database/mysql。

系統(tǒng)信息:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:       xenial

$ uname -a
Linux Ubuntu 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

mysql-server版本:

Server version: 5.7.11-0ubuntu6 (Ubuntu)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

步驟

以下步驟需要停止mysql服務(wù)并假設(shè)用戶擁有管理員權(quán)限。

一、停止mysql服務(wù)

sudo service mysql stop

二、新建目錄并移動(dòng)現(xiàn)有數(shù)據(jù)庫(kù)

重要提示:強(qiáng)烈建議先備份/var/lib/mysql文件夾,數(shù)據(jù)無(wú)價(jià)?。?!強(qiáng)烈建議先備份/var/lib/mysql文件夾,數(shù)據(jù)無(wú)價(jià)!??!強(qiáng)烈建議先備份/var/lib/mysql文件夾,數(shù)據(jù)無(wú)價(jià)!!!

創(chuàng)建新的數(shù)據(jù)庫(kù)目錄:

sudo mkdir /home/database

移動(dòng)當(dāng)前數(shù)據(jù)到新目錄:

sudo mv /var/lib/mysql /home/database/

同時(shí)需要?jiǎng)h除日志文件:

sudo rm /home/database/mysql/ib_logfile0
sudo rm /home/database/mysql/ib_logfile1

三、修改mysql配置文件

修改/etc/mysql/mysql.conf.d/mysqld.cnfdatadir的值為:

datadir = /home/database/mysql

四、修改apparmor配置

修改/etc/apparmor.d/usr.sbin.mysqld中的Allow data dir access部分,改后如下:

# Allow data dir access
#  /var/lib/mysql/ r,
#  /var/lib/mysql/** rwk,
   /home/database/mysql/ r,
   /home/database/mysql/** rwk,

重新加載apparmor服務(wù)使修改生效:

sudo service apparmor reload

五、修改mysql-systemd-start

修改/usr/share/mysql/mysql-systemd-start文件,將類似/var/lib/mysql的內(nèi)容全部修改為/home/database/mysql。

六、啟動(dòng)mysql服務(wù)

sudo service mysql start

七、驗(yàn)證

進(jìn)入mysql命令行,執(zhí)行show variables like '%datadir%';,可以看到如下信息:

mysql> show variables like '%datadir%';
+---------------+-----------------------+
| Variable_name | Value                 |
+---------------+-----------------------+
| datadir       | /home/database/mysql/ |
+---------------+-----------------------+
1 row in set (0.00 sec)

表示修改成功。恭喜你!

附加說明

當(dāng)mysql服務(wù)無(wú)法啟動(dòng)時(shí),可以通過datadir目錄對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份。直接完全拷貝保存即可??梢栽诋?dāng)前主機(jī)或其它主機(jī)(最好mysql版本相同)上直接將原有datadir目錄替換即可完成數(shù)據(jù)恢復(fù)。


閱讀原文 | 作者官網(wǎng) | 公眾號(hào) | Feed | 訂閱 | 發(fā)私信

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容