Ram*_*esh 3 directory-structure mysql
我正在将200 GB 的数据库恢复到新安装的RHEL机器中。但是,在恢复时我遇到了no space available
问题。
是否可以更改存储数据库的目录?
首先,我只能使用以下mysql
查询来验证它是否与空间问题有关。
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name LIKE "%dir"'
Run Code Online (Sandbox Code Playgroud)
上面的命令将输出返回给我,
+---------------------------+----------------------------+
| Variable_name | Value |
+---------------------------+----------------------------+
| basedir | /usr |
| character_sets_dir | /usr/share/mysql/charsets/ |
| datadir | /var/lib/mysql/ |
| innodb_data_home_dir | |
| innodb_log_group_home_dir | ./ |
| lc_messages_dir | /usr/share/mysql/ |
| plugin_dir | /usr/lib/mysql/plugin/ |
| slave_load_tmpdir | /tmp |
| tmpdir | /tmp |
+---------------------------+----------------------------+
Run Code Online (Sandbox Code Playgroud)
从上面的命令中我们可以看到,datadir存在于/var/lib/mysql
. 现在,我需要确保/var
没有足够的空间来容纳数据库,在这种情况下我的检测是正确的。我使用以下命令实现了它。
df -P /var | tail -1 | cut -d' ' -f 1
Run Code Online (Sandbox Code Playgroud)
上面的命令基本上告诉了特定目录的挂载点。正如我所怀疑的,挂载点在/dev/sda2
其下只有40 GB 的空间。现在,更改 datadir 很简单。
停止使用mysql服务,
service mysqld stop
Run Code Online (Sandbox Code Playgroud)
编辑文件/etc/my.cnf
以将datadir放到我们有足够空间的某个分区。(这适用于 RHEL,可能因操作系统版本而异)。更改datadir 后,使用命令重新启动 mysql 服务,
service mysqld start
Run Code Online (Sandbox Code Playgroud)
参考
归档时间: |
|
查看次数: |
771 次 |
最近记录: |