面对服务器空间紧张问题,需要将Ubuntu 10.04下的MySQL数据库目录从默认的/var/lib/mysql迁移至/usr/local/mysql。具体操作步骤如下:
首先,编辑MySQL配置文件/etc/mysql/my.cnf,将datadir参数更改为/usr/local/mysql。
接着,执行命令cp -a /var/lib/mysql /usr/local/,实现目录的复制。
之后,使用命令/etc/init.d/mysql start尝试启动MySQL。
若出现系统错误,无法启动MySQL,日志中显示无法找到文件"./mysql/plugin.frm"(错误码:13),并提示无法打开mysql.plugin表,需运行mysql_upgrade命令创建该表。
执行mysql_upgrade命令时同样报错。这时,可通过网络查询找到解决方案。
作者忽然想起,之前在调试邮件服务器时,修改系统默认存储目录需调整系统chroot参数。于是尝试修改MySQL相关的apparmor配置文件(usr.sbin.mysqld和abstractions/mysql),并重新加载apparmor服务。
具体步骤为:
1. 修改usr.sbin.mysqld文件,将与/var/lib/mysql相关的路径更改为/usr/local/mysql。
2. 修改abstractions/mysql文件,将与/var/lib/mysql/mysql.sock相关的路径更改为/usr/local/mysql/mysql.sock。
3. 执行命令/etc/init.d/apparmor reload。
完成上述操作后,再次尝试启动MySQL,成功。
经验总结:当修改系统自带软件的存储目录后,出现错误无法启动的情况时,可能需要调整与之相关的系统chroot配置。此方法同样适用于其他需要更改存储目录的系统软件。请参考上述步骤进行操作。
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。