我正在运行orthomcl
使用mysql
. 该程序之前在同一台计算机上运行得很好。这次我收到了一条错误消息。
DBD::mysql::st execute failed: Can't create/write to file '/tmp/#sql_700_1.MYI' (Errcode: 13) at /usr/local/bioinf/orthomclSoftware-v2.0.9/bin/orthomclPairs line 709, <F> line 14.
Run Code Online (Sandbox Code Playgroud)
我尝试重新启动mysql
服务器,服务器关闭但无法启动。
sudo service mysql start
start: Job failed to start
Run Code Online (Sandbox Code Playgroud)
/var/log/mysql/error.log
并且/var/log/mysql.err
是空的。我试了几件事情,我发现这里包括清洗和重新安装mysql-server
和删除ib_logfile*
在/var/lib/mysql
。
我尝试的另一件事是
sudo dpkg-reconfigure mysql-server-5.5
Run Code Online (Sandbox Code Playgroud)
错误消息是:
/usr/sbin/mysqld: Can't create/write to file '/tmp/ibNzqwO0' (Errcode: 13)
InnoDB: Error: unable to create temporary file; errno: 13
[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Unknown/unsupported storage engine: InnoDB
[ERROR] Aborting
Run Code Online (Sandbox Code Playgroud)
以下是来自dmesg | grep mysql
:
[3115187.338273] init: mysql main process (44255) terminated with status 1
[3115187.338417] init: mysql main process ended, respawning
[3115187.356361] init: mysql post-start process (44256) terminated with status 1
[3116827.473256] type=1400 audit(1396394069.224:132): apparmor="DENIED" operation="open" parent=45387 profile="/usr/sbin/mysqld" name="/home/tmp/" pid=45396 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[3116827.582489] type=1400 audit(1396394069.332:133): apparmor="DENIED" operation="mknod" parent=45387 profile="/usr/sbin/mysqld" name="/home/tmp/#sql_b154_0.MYI" pid=45402 comm="mysqld" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
[3116827.908448] type=1400 audit(1396394069.660:134): apparmor="DENIED" operation="mknod" parent=45317 profile="/usr/sbin/mysqld" name="/home/tmp/ibbPfaqP" pid=45415 comm="mysqld" requested_mask="c" denied_mask="c" fsuid=118 ouid=118
[3116841.623608] type=1400 audit(1396394083.372:139): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=45443 comm="apparmor_parser"
[3116841.771621] init: mysql pre-start process (45474) terminated with status 1
Run Code Online (Sandbox Code Playgroud)
有很多很多这样的线路。
有人能帮我弄清楚我的 MySQL 服务器出了什么问题吗?
非常感谢。
Ant*_*ala 15
这样做的原因是您/tmp
的符号链接到另一个位置,/home/tmp
. 但是 MySQL 受到 AppArmor 的保护,它不允许自由写入/home/tmp
. 要纠正这种情况,您可以编辑/etc/apparmor.d/abstractions/user-tmp
并/home/tmp
适当地添加那里;对我来说额外的线条
owner /home/tmp/** rwkl,
/home/tmp/ rw,
Run Code Online (Sandbox Code Playgroud)
成功了。
听起来你没有正确的权限/tmp
,这应该是世界可写的。您应该可以使用以下命令修复它:
sudo chmod 1777 /tmp
Run Code Online (Sandbox Code Playgroud)
这会将权限设置为777
(rwx for Everyone) 并设置为/tmp
目录推荐的粘滞位。如中所述man chmod
:
受限删除标志或粘滞位
受限删除标志或粘滞位是单个位,其解释取决于文件类型。对于目录,它可以防止非特权用户删除或重命名目录中的文件,除非他们拥有该文件或目录;这称为目录的受限删除标志,通常可在世界可写目录中找到,例如 /tmp。对于某些旧系统上的常规文件,该位将程序的文本图像保存在交换设备上,以便在运行时加载更快;这称为粘滞位。
归档时间: |
|
查看次数: |
26204 次 |
最近记录: |