Linux下MySQL数据库目录更改转移

场景,ibdata1文件增长过快,或者数据库数据量增长过快导致datadir 目录快满的情况下,将datadir 目录下数据迁移到其他目录。

备份数据库

备份数据库很重要,防止迁移数据库失败恢复数据库。
[[email protected]/]# 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服务

[[email protected]]# /etc/init.d/mysql stop
Stopping mysql (via systemctl):                            [  OK  ]

修改配置文件

备份配置文件
[[email protected]]# 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
[[email protected]]# cd /data/mysql/data
[[email protected]]# cp -a * /data1/mysql/data
[[email protected]]# cd /data1/mysql/data/
查看复制过来的文件权限
[[email protected]]# 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

启动数据库

[[email protected]]# /etc/init.d/mysql start
Starting mysql (via systemctl):                            [  OK  ]
[[email protected]]# mysql -uroot -proot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data1/mysql/data/mysql.sock' (2)
如果遇到以上错误,需要建立一个mysql.sock的软链接
[[email protected]]# ln -s /data1/mysql/data/mysql.sock /tmp/mysql.sock
验证数据文件目录是否为新的目录
[[email protected]]# 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/ |
+---------------+-------------------+

你可能感兴趣的:(mysql,Mysql,基本操作)