最近服务器上的MySQL突然就无法创表,刚开始我还以为是账号权限的问题,没想到换了个管理员的账号,也是无法创建成功,错误提示为
ERROR: 1005 Can't create table (errno: 13)
想要解决方案的同学请直接看结尾
排查过程
首先,根据网上的资料,提示说应该是没有权限,但是我这种情况比较特殊,因为昨天还好好的,第二天就突然不行了,中间也是没有对MySQL的配置进行修改过...
于是,尝试使用重启大法来解决
由于不是太熟悉Linux命令,于是便是通过宝塔的Linux面板中的软件管理进行MySQL的重启,如下图所示
进入到设置之后,我们即可通过按钮点击来重启服务,但是,我点击了重启之后,发现服务状态是关闭的...
这就很奇怪了,由于我是通过点击按钮来重启服务,所示看不到错误的提示信息,所以还是找一下重启mysql的命令
重启mysql的命令(仅限于阿里云服务器):
service mysqld restart
之后就报错了,提示如下:
MySQL server PID file could not be found! [FAILED]
Starting MySQL.The server quit without updating PID file
于是参考了网上的方法,试着删除日志二进制文件**(目录在mysql的数据目录,文件名类似这种:mysql-bin.0000*)**及关闭输出日志二进制功能
PS:阿里云的mysql目录是在/www/server/mysql
,然后mysql的数据目录则是在/www/server/data
发现还是不行,于是看到了CSDN评论说的,没想到试试就成功了
解决方法
在/etc/my.cnf文件中添加user=root即可,我们可以直接通过MySQL的设置进行配置文件的修改,之后重启就发现状态是开启了,创表也是没有问题了(虽然还不知道之前为什么突然无法创表的原因,不过有解决方法,之后再出现的话也可以解决,原因就不追究了)
评论区