天天看點

編譯安裝的mysql如何更改檔案路徑

場景:小張在巡檢時發現公司一台資料庫經常寫不入資料,于是登入資料庫所在的主機一看,原來是資料庫對應的50G磁盤分區滿了,而主機上還有另外一個500G的磁盤分區沒在用,于是小張請示完上司後,準備将資料庫的日志等占空間的檔案位置更換到更大的那個分區。

(PS:本環境為單機環境,主備環境或主主環境操作會有所不同)

1、首先是解決掉磁盤分區空間用完的情況并備份資料庫,小張删除了改磁盤分區下的幾個安裝封包件,再進入資料庫清理下binlog日志:

登入資料庫,執行:

reset master;

退出資料庫

#mysqldump -u 使用者 -p密碼 --all-databases | gzip > /opt/backup.sql.gz

PS:在動資料庫之前切記備份,以免發生意外事故

2、确定mysql具體安裝路徑,各個檔案的位置。

#ps -ef | grep mysql

編譯安裝的mysql如何更改檔案路徑

檢視etc下的my.cnf檔案,由于資料庫是編譯安裝的,日志等檔案位置都設定在/data下

#cat /etc/my.cnf | grep data/mysql

datadir=/data/mysql/data #mysql資料庫檔案所在目錄

tmpdir=/data/mysql/data #mysql資料庫臨時檔案目錄

log-error=/data/mysql/log/error.log

general_log_file=/data/mysql/log/general_log.log

log_bin= /data/mysql/binlog/mysql-bin.log

relay_log= /data/mysql/binlog/mysql-relay-bin.log

slow_query_log_file=/data/mysql/log/slow.log #慢查詢日志

innodb_data_home_dir = /data/mysql/data #這是InnoDB表的目錄共用設定。

innodb_log_group_home_dir = /data/mysql #InnoDB 日志檔案的路徑。

3、停用mysql,編輯my.cnf更改路徑位置,這裡更改為/opt下

#service mysqld stop

更改前檔案指定位置如下:

log_bin=/data/mysql/binlog/mysql-bin.log

更改後檔案指定位置如下:

cat /etc/my.cnf | grep data/mysql

datadir=/opt/data/mysql/data #mysql資料庫檔案所在目錄

tmpdir=/opt/data/mysql/data #mysql資料庫臨時檔案目錄

log-error=/opt/data/mysql/log/error.log

general_log_file=/opt/data/mysql/log/general_log.log

log_bin = /opt/data/mysql/binlog/mysql-bin.log

relay_log = /opt/data/mysql/binlog/mysql-relay-bin.log

slow_query_log_file=/opt/data/mysql/log/slow.log #慢查詢日志

innodb_data_home_dir = /opt/data/mysql/data #這是InnoDB表的目錄共用設定。

innodb_log_group_home_dir = /opt/data/mysql #InnoDB 日志檔案的路徑。

還需要修改/etc/init.d/mysqld這個檔案跟mysql-bin.index裡的内容,将路徑/data/mysql/data修改為/opt/data/mysql/data

#cat /etc/init.d/mysqld | grep data/mysql

datadir=/opt/data/mysql/data

#vim /opt/data/mysql/binlog/mysql-bin.index

/opt/data/mysql/binlog/mysql-bin.000001

編譯安裝的mysql如何更改檔案路徑

4、轉移資料庫檔案路徑

#cd /

#mv data/ /opt/

5、啟動mysql,成功啟動

編譯安裝的mysql如何更改檔案路徑

這裡warning隻是個提示,不是資料庫的報錯,執行下面指令

#systemctl daemon-reload

繼續閱讀