通过yum安装的mysql会默认将数据存储位置设置在 /var/lib/mysql 下,而这个目录在centos安装时都是系统挂载的磁盘,磁盘大小不会设的很大,当数据库中的数据太多时,就会把该磁盘占满,使得mysql服务强制停止,并没法启动。报错情况可能为“mysql deamon failed to start“,“Timeout error occurred trying to start MySQL Daemon“,“table is full“等。故更改mysql数据库的数据存储位置十分必要。
关闭mysql服务
service mysql stop
建立你自己的数据存储文件夹
cd /home
mkdir mysqldata
文件目录转移
mv /var/lib/mysql /home/mysqldata/
修改my.cnf配置文件
将socket=/var/lib/mysql/mysql.sock
设置为:/home/mysqldata/mysql/mysql.sock
修改MySQL启动脚本/etc/init.d/mysqld
这个文件是一个shell脚本,里面有很多内容,我们需要把所有出现/var/lib/mysql 的位置全部替换为/home/mysqldata/mysql/,可以在vim中使用/var\/lib\/mysql查找。
修改MySQL安全启动脚本/etc/init.d/mysqld_safe
同对mysqld启动脚本的操作。
以上更改完成之后,重启mysql服务。
service mysql start
一般情况下这时已经可以连上mysql,若出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)错误,说明有socket的位置仍有错误,简单的做法时建立一个软连接。
ln -s /home/mysqldata/mysql/mysql.sock /var/lib/mysql/mysql.sock
MySQL5.7
mkdir tmp
mkdir logs
vi mysqld.log
chown -R mysql:mysql /data
mysqld --initialize --user=mysql --datadir=/data/mysql --log-error=/data/logs/mysqld.log --tmpdir=/data/tmp
打赏
微信打赏