概述
本文描述了在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à)g志尽!推盛!強(qiáng)烈建議先備份/var/lib/mysql
文件夾峦阁,數(shù)據(jù)無(wú)價(jià)!T懦伞榔昔!強(qiáng)烈建議先備份/var/lib/mysql
文件夾,數(shù)據(jù)無(wú)價(jià)1窬H龌帷!
創(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.cnf
中datadir
的值為:
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
文件怔檩,將類(lèi)似/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)
表示修改成功乙埃。恭喜你闸英!
附加說(shuō)明
當(dāng)mysql服務(wù)無(wú)法啟動(dòng)時(shí),可以通過(guò)datadir目錄對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份介袜。直接完全拷貝保存即可甫何。可以在當(dāng)前主機(jī)或其它主機(jī)(最好mysql版本相同)上直接將原有datadir目錄替換即可完成數(shù)據(jù)恢復(fù)遇伞。