26

编译安装的mysql如何更改文件路径-Zabbix_Z大叔的博客

 4 years ago
source link: https://blog.51cto.com/14483703/2486188
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

编译安装的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、转移数据库文件路径

#mv data/ /opt/

5、启动mysql,成功启动

编译安装的mysql如何更改文件路径

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

#systemctl daemon-reload

检查数据库日志看看有什么异常报错不

编译安装的mysql如何更改文件路径

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK