MYSQL数据搬家

发布日期:2025/09/07来源:博阳大数

随着用户的使用,占据的空间越来越大,原有的目录由于空间限制,无法继续满足空间的需求。这时需要把数据迁移到新的目录下,下面就是数据迁址的具体方法:


1. 首先停止mysql


sudo systemctl stop dagl sudo systemctl stop mysql

这样就把mysql服务停止下来

2. 拷贝数据到新的地方


sudo mkdir /var/mysql sudo cp -r /opt/byds-dagl/mysql8/data /var/mysql

稍等片刻,数据就拷贝到新的位置了(新的位置是/var/mysql,具体可以根据实际情况)

3. 修改my.cnf


sudo vi /opt/byds-dagl/mysql8/my.cnf


修改后的内容如下


[mysqld] bind-address=0.0.0.0 port = 3502 user=root lower_case_table_names = 1 max_allowed_packet=128M socket = /tmp/mysql.sock basedir = /opt/byds-dagl/mysql8 datadir = /var/mysql/data pid-file = /var/mysql/data/mysql.pid log_error = /opt/byds-dagl/mysql8/logs/mysql-error.log slow_query_log_file = /opt/byds-dagl/mysql8/logs/mysql-slow.log


只修改跟data目录相关的设置项就可以,其它的不用改变。

4. 重新启动mysql,或者dagl


sudo systemctl restart dagl sudo systemctl restart mysql


其中会出现一个问题就是mysql启动的时候,新的目录有可能没有准备好,导致启动失败!
需要在service启动脚本中增加一条指令,这条指令加在原有ExecStart指令前一行就可以了。
service文件在:/etc/systemd/system,名字是dagl.service, 非档案管理是 mysql.service
新指令如下:ExecStartPre=/bin/sleep 10
含义是原地等10秒中,等新目录可以使用,再执行下一步的操作。
至此全部完成。