1、查看当前数据存放目录的位置
MariaDB [(none)]> show variables like '%dir%';
+-----------------------------------------+----------------------------+
| Variable_name | Value |
+-----------------------------------------+----------------------------+
| aria_sync_log_dir | NEWFILE |
| basedir | /usr/ |
| binlog_direct_non_transactional_updates | OFF |
| character_sets_dir | /usr/share/mysql/charsets/ |
| datadir | /var/lib/mysql/ |
| ignore_db_dirs | |
| innodb_data_home_dir | |
| innodb_log_arch_dir | ./ |
| innodb_log_group_home_dir | ./ |
| innodb_max_dirty_pages_pct | 75.000000 |
| innodb_max_dirty_pages_pct_lwm | 0.001000 |
| innodb_tmpdir | |
| innodb_undo_directory | . |
| lc_messages_dir | |
| plugin_dir | /usr/lib64/mysql/plugin/ |
| slave_load_tmpdir | /tmp |
| tmpdir | /tmp |
| wsrep_data_home_dir | /var/lib/mysql/ |
| wsrep_dirty_reads | OFF |
+-----------------------------------------+----------------------------+
2、关闭mysql
service mysql stop
3、将当前的数据文件挪到新的目录下
cp -r /var/lib/mysql/* /data/mariadb
4、更改新目录的权限
chown -R mysql:mysql /data/mariadb
5、修改mysql配置文件,/etc/my.cnf, 加入下面的描述
[mysqld] datadir = /data/mariadb
socket=/data/mysql.sock
6、开启mysql
service mysql start
温馨提示:如果使用SELinux,请确保mysql有新目录的读写权限。最直接的方式是关闭SELinux。
如果你想把目录迁移到/home目录下,很遗憾,mariadb似乎不喜欢用户这么做。你可以把文件迁移过去,将原来的目录映射过来。
[code language=”bash”]
mount –bind /home/mariadb /var/lib/mysql
[/code]
配置永久映射,修改文件 /etc/fstab,加入以下条目
[code language=”text”]
/home/mariadb /var/lib/mysql none defaults,bind 0 0
[/code]