一客户的本地数据库发现不能对其中的表进行查询,无法进行任何操作,联系我进行排查:
登录数据库:
为什么会出现这样的错误,为什么会报没有权限的错误?由于用户环境还不是很熟悉,先要了解一下用户数据库的安装情况:
用户的数据目录/var/lib/mysql:
可以看到目录的权限是正确的,这个时候在看看数据库的errorlog中有没有开排查的信息:
这里已经很明确了,mysql没有权限对/tmp进行操作:
这个时候我们可以有两种办法,一种为改变/tmp的权限,另一种为改变数据库的临时目录;我采取了修改数据库临时目录的方法:
可以看到用户的tmpdir变量并没有指定,被注释掉,所以数据库会默认指定到/tmp目录;
修改其临时目录到用户的数据目录:
重启mysql后,数据库恢复正常。