我正在使用带有 cPanel 的 CentOS。在我的服务器上,所有 MySQL 数据库都保存在/var/lib/mysql
. 现在/var
100% 已满,MySQL 已停止工作。如何将数据库移动到新目录,/home/mysql
尤其是考虑到该服务器是使用 cPanel 管理的?
我无法从 cpanel 确认这一点,因为我没有访问权限,但这是来自通过 ssh 和 sudo 连接到 root 的控制台的示例。在 /etc/fstab 中使用绑定条目而不是符号链接有一些参数,但这对我有用。
我的正常程序是停止mysql,移动目录内容,链接原来的,然后重启mysqld。
[tomh@workstation001 ~]$ sudo su -
[root@workstation001 ~]#
[root@workstation001 ~]# service mysqld stop
Stopping mysqld (via systemctl):
[ OK ]
[root@workstation001 ~]# mv /var/lib/mysql/ /opt/
[root@workstation001 ~]# ln -s /opt/mysql /var/lib/
[root@workstation001 ~]# ls -la /var/lib/mysql
lrwxrwxrwx 1 root root 10 Feb 26 23:02 /var/lib/mysql -> /opt/mysql
[root@workstation001 ~]# service mysqld start
Starting mysqld (via systemctl): [ OK ]
[root@workstation001 ~]# mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.18-log MySQL Community Server (GPL)
mysql> show databases;
...
| Database |
+-----------------------+
| information_schema |
| mysql |
| performance_schema |
| test
Run Code Online (Sandbox Code Playgroud)
我刚刚注意到一个类似的问题,其中这接近于重复,其中提到了在启用 selinux 的情况下执行上述操作的一些问题; http://crashmag.net/change-the-default-mysql-data-directory-with-selinux-enabled
所以如果你有 selinux,还有一些额外的步骤。
如果要更改mysql
数据目录,您应该编辑 mysql 配置文件并更改datadir
值。
datadir = /home/user/data
Run Code Online (Sandbox Code Playgroud)
您的新数据目录必须为mysql
SELinux 安全上下文所有并具有适当的安全上下文。
chown -R mysql:mysql /home/user/data
chcon -R -t mysqld_db_t /home/user/data
Run Code Online (Sandbox Code Playgroud)
然后重启mysql
服务器:
systemctl restart mysql
# or
/etc/init.d/mysqld restart
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
59302 次 |
最近记录: |