编译安装的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

更改前文件指定位置如下:

#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
编译安装的mysql如何更改文件路径

4、转移数据库文件路径

#cd /

#mv data/ /opt/

5、启动mysql,成功启动
编译安装的mysql如何更改文件路径

这里warning只是个提示,不是数据库的报错,执行下面命令

#systemctl daemon-reload

即可解决

检查数据库日志看看有什么异常报错不
编译安装的mysql如何更改文件路径

没异常报错,可以正常使用了。

相关推荐