首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL启动错误--为IPv4‘127.0.0.1’创建套接字失败: errno: 13

MySQL启动错误--为IPv4‘127.0.0.1’创建套接字失败: errno: 13
EN

Server Fault用户
提问于 2017-05-02 22:21:43
回答 1查看 2.2K关注 0票数 1

我要为这件事把头发拔出来。令人意外的是(看起来,我已经几个星期没有登录到服务器了) mysql死了,我无法重新启动它。我在Ubuntu 14.04。尝试重新启动时,日志中会显示以下内容:

代码语言:javascript
复制
170502 18:00:57 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306
170502 18:00:57 [Note]   - '127.0.0.1' resolves to '127.0.0.1';
170502 18:00:57 [ERROR] Failed to create a socket for IPv4 '127.0.0.1': errno: 13.
170502 18:00:57 [ERROR] Can't create IP socket: Permission denied
170502 18:00:57 [ERROR] Aborting

你说是许可?

代码语言:javascript
复制
root@mleserver:~# ls -ld /var/run/mysqld/
drwxr-xr-x 2 mysql mysql 40 May  2 16:46 /var/run/mysqld/

啊,不对。

代码语言:javascript
复制
root@mleserver:~# ls -la /var/lib/mysql
total 2521564
drwx------ 10 mysql mysql       4096 May  2 18:00 .
drwxr-xr-x 55 root  root        4096 May  2 16:51 ..
-rw-r--r--  1 mysql mysql          0 Oct  9  2013 debian-5.1.flag
-rw-r--r--  1 mysql mysql          0 May  2 17:50 debian-5.5.flag
-rw-rw----  1 mysql mysql 2569011200 May  2 18:00 ibdata1
-rw-rw----  1 mysql mysql    5242880 May  2 18:00 ib_logfile0
-rw-rw----  1 mysql mysql    5242880 May  2 18:00 ib_logfile1
drwx------  2 mysql mysql       4096 Aug 15  2016 mleserver_production
drwx------  2 mysql mysql       4096 May  2 17:50 mysql
-rw-rw----  1 mysql mysql          6 Jan 20 06:47 mysql_upgrade_info
drwx------  2 mysql mysql       4096 May  2 17:50 performance_schema

看起来也不坏。

代码语言:javascript
复制
root@mleserver:/tmp# cat /etc/passwd
...
mysql:x:104:111:MySQL Server,,,:/nonexistent:/bin/false

我决定从轨道上核爆它:

代码语言:javascript
复制
sudo apt-get remove --purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get install mysql-server mysql-client

但错误仍然存在。有人有什么想法吗?在这一点上,我不介意从头开始重建服务器,但我希望能够从数据库中获取数据.虽然我需要能先连接到它。这是我的my.cnf文件:

代码语言:javascript
复制
[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

bind-address            = 127.0.0.1
key_buffer              = 16M
max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 8

myisam-recover         = BACKUP

query_cache_limit       = 1M
query_cache_size        = 16M

log_error = /var/log/mysql/error.log

expire_logs_days        = 10
max_binlog_size         = 100M

[mysqldump]
quick
quote-names
max_allowed_packet      = 16M

[mysql]

[isamchk]
key_buffer              = 16M

!includedir /etc/mysql/conf.d/
EN

回答 1

Server Fault用户

回答已采纳

发布于 2017-05-03 03:46:57

如果这对其他人有帮助的话,结果是AppArmor拒绝执行。来自syslog

代码语言:javascript
复制
May  2 23:35:51 devanalyzer kernel: [24540.913056] type=1400 audit(1493782551.291:50): apparmor="DENIED" operation="create" parent=1 profile="/usr/sbin/mysqld" pid=25601 comm="mysqld" family="inet" sock_type="stream" protocol=6

我不太关心诊断它,因为我要拆除这台服务器,但我能够绕过它,将所有配置文件设置为抱怨模式,而不是强制模式:

代码语言:javascript
复制
sudo aa-complain /etc/apparmor.d/*

在此之后,sudo service mysql start按预期工作。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/847891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档