2020-11-10更新:
最后启动方式说 mysqld_safe &,后经验证,不需要如此,如果修改配置文件之后启动不了,重启一下服务器即可。
前景提要
工作中碰到的实际问题,在一台服务器上安装了mysql,有一天突然mysql所在的磁盘空间被占满,就会导致数据库出再问题。
进入系统,查看系统磁盘占用情况。
[root@localhost mysql]# df
文件系统 1K-块 已用 可用 已用% 挂载点
devtmpfs 3992692 0 3992692 0% /dev
tmpfs 4004604 8 4004596 1% /dev/shm
tmpfs 4004604 9064 3995540 1% /run
tmpfs 4004604 0 4004604 0% /sys/fs/cgroup
/dev/mapper/cl-root 52403200 52403180 20 100% /
/dev/sda1 1038336 182196 856140 18% /boot
/dev/mapper/cl-home 462319044 87968 462231076 1% /home
tmpfs 800924 0 800924 0% /run/user/0
由上面可以发现 其中一个磁盘空间已被占满,这个正是mysql所在目录,所以,需要把mysql目录迁徙到 /home下。因为home所在的磁盘有400多个G,完全够我们日常所用了。
目录迁移
# 进入home 目录
[root@localhost mysql]# cd /home/
# 新建mysqldata文件夹
[root@localhost mysql]# mkdir mysqldata
# 移动mysql 到home/mysqldata下
[root@localhost mysql]# mv /var/lib/mysql /home/mysqldata/
[root@localhost home]# chown -R mysql:mysql /home/mysqldata/mysql/
修改配置文件
vi /etc/my.cnf
datadir=/home/mysqldata/mysql
socket=/home/mysqldata/mysql/mysql.sock
网上还有人说要修改 /etc/selinux/config,把SELINUX的参数修改成disabled,本人试了,依然启动动的时候报错。
Directory '/home/mysqldata/mysql' for UNIX socket file don't exists.
启动 mysql
最后用下面这个命令可以启动mysql
mysqld_safe &