场景,ibdata1文件增长过快,或者数据库数据量增长过快导致datadir 目录快满的情况下,将datadir 目录下数据迁移到其他目录。
备份数据库
备份数据库很重要,防止迁移数据库失败恢复数据库。
[root@www.cndba.cn/]# mysqldump -uroot -proot --all-databases --opt --add-drop-database --add-drop-table --default-character-set=utf8 --master-data=2 --log-error=backup/mysqldump.log > backup/all_mysql.sql
关闭Mysql服务
[root@www.cndba.cnbackup]# /etc/init.d/mysql stop
Stopping mysql (via systemctl): [ OK ]
修改配置文件
备份配置文件
[root@www.cndba.cndata]# cp /etc/my.cnf /etc/my.cnf.20180410
修改配置文件
注释掉之前的代码
[client]
socket =/tmp/mysql.sock
[mysqld]
socket = /tmp/mysql.sock
datadir = /data/mysql/data
修改改为
[client]
socket = /data1/mysql/data/mysql.sock
[mysqld]
socket = /data1/mysql/data/mysql.sock
datadir = /data1/mysql/data
移动数据文件到新的数据文件目录
从/data/mysql/data移动到/data1/mysql/data
[root@www.cndba.cndata]# cd /data/mysql/data
[root@www.cndba.cndata]# cp -a * /data1/mysql/data
[root@www.cndba.cndata]# cd /data1/mysql/data/
查看复制过来的文件权限
[root@www.cndba.cndata]# ll
total 403484
-rw-rw---- 1 mysql mysql 16384 Apr 8 20:57 aria_log.00000001
-rw-rw---- 1 mysql mysql 52 Apr 8 20:57 aria_log_control
drwxr-xr-x 2 mysql mysql 26 Apr 9 09:17 data
-rw-rw---- 1 mysql mysql 2000 Apr 8 20:57 ib_buffer_pool
-rw-rw---- 1 mysql mysql 10485760 Apr 8 20:57 ibdata1
-rw-rw---- 1 mysql mysql 134217728 Apr 8 20:57 ib_logfile0
-rw-rw---- 1 mysql mysql 134217728 Apr 8 18:03 ib_logfile1
-rw-rw---- 1 mysql mysql 134217728 Apr 8 18:03 ib_logfile2
drwx------ 2 mysql root 4096 Apr 8 18:03 mysql
drwx------ 2 mysql mysql 20 Apr 8 18:03 performance_schema
drwx------ 2 mysql root 117 Apr 8 21:43 test
启动数据库
[root@www.cndba.cndata]# /etc/init.d/mysql start
Starting mysql (via systemctl): [ OK ]
[root@www.cndba.cntmp]# mysql -uroot -proot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data1/mysql/data/mysql.sock' (2)
如果遇到以上错误,需要建立一个mysql.sock的软链接
[root@www.cndba.cntmp]# ln -s /data1/mysql/data/mysql.sock /tmp/mysql.sock
验证数据文件目录是否为新的目录
[root@www.cndba.cndata]# mysql -uroot -proot
Welcome to the MariaDB monitor. Commands end with ; or /g.
Your MariaDB connection id is 27
Server version: 10.2.13-MariaDB-log MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.
MariaDB [(none)]> show global variables like 'datadir';
+---------------+-------------------+
| Variable_name | Value |
+---------------+-------------------+
| datadir | /data1/mysql/data/ |
+---------------+-------------------+
版权声明:本文为博主原创文章,未经博主允许不得转载。