場景:小張在巡檢時發現公司一臺數據庫常常寫不入數據,因而登陸數據庫所在的主機一看,原來是數據庫對應的50G磁盤分區滿了,而主機上還有另一個500G的磁盤分區沒在用,因而小張請示完領導後,準備將數據庫的日誌等佔空間的文件位置更換到更大的那個分區。mysql
(PS:本環境爲單機環境,主備環境或主主環境操做會有所不一樣)sql
一、首先是解決掉磁盤分區空間用完的狀況並備份數據庫,小張刪除了改磁盤分區下的幾個安裝包文件,再進入數據庫清理下binlog日誌:數據庫
登陸數據庫,執行:vim
reset master;ide
退出數據庫日誌
#mysqldump -u 用戶 -p密碼 --all-databases | gzip > /opt/backup.sql.gzblog
PS:在動數據庫以前切記備份,以避免發生意外事故ip
二、肯定mysql具體安裝路徑,各個文件的位置。it
#ps -ef | grep 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 日誌文件的路徑。
三、停用mysql,編輯my.cnf更改路徑位置,這裏更改成/opt下
#service mysqld stop
更改前文件指定位置以下:
#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 日誌文件的路徑。
更改後文件指定位置以下:
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
四、轉移數據庫文件路徑
#cd /
#mv data/ /opt/
五、啓動mysql,成功啓動
這裏warning只是個提示,不是數據庫的報錯,執行下面命令
#systemctl daemon-reload
便可解決
檢查數據庫日誌看看有什麼異常報錯不
沒異常報錯,能夠正常使用了。