MySQL守护进程拒绝启动,显示“无法启动服务器:TCP/IP端口绑定失败:地址已在使用中”(但实际上并没有)。

7

好的,伙计们,我准备放弃这个东西了。虽然我认为我已经接近成功了,但还有一个最后的错误。服务器启动良好,但随后失败,并显示绑定到TCP/IP端口的错误已在使用中,这是不可能的,因为mysql没有运行:(

错误信息:

bash-4.2$ mysqld
120730 18:31:05 [Note] Plugin 'FEDERATED' is disabled.
120730 18:31:05 InnoDB: The InnoDB memory heap is disabled
120730 18:31:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120730 18:31:05 InnoDB: Compressed tables use zlib 1.2.5
120730 18:31:05 InnoDB: Using Linux native AIO
120730 18:31:05 InnoDB: Initializing buffer pool, size = 128.0M
120730 18:31:05 InnoDB: Completed initialization of buffer pool
120730 18:31:06 InnoDB: highest supported file format is Barracuda.
120730 18:31:06  InnoDB: Waiting for the background threads to start
120730 18:31:07 InnoDB: 1.1.8 started; log sequence number 2929794
120730 18:31:07 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
120730 18:31:07 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
120730 18:31:07 [Note] Server socket created on IP: '0.0.0.0'.
120730 18:31:07 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
120730 18:31:07 [ERROR] Do you already have another mysqld server running on port: 3306 ?
120730 18:31:07 [ERROR] Aborting

120730 18:31:07  InnoDB: Starting shutdown...
120730 18:31:08  InnoDB: Shutdown completed; log sequence number 2929794
120730 18:31:08 [Note] mysqld: Shutdown complete

运行 ps ax | fgrep mysql 命令并验证它是否正在运行。 - Richard Sitze
这可能有助于识别绑定到端口的进程:http://blog.kagesenshi.org/2006/07/finding-what-process-is-binding.html - Richard Sitze
通常情况下,使用lsof可以最好地找到这种问题。 - tadman
我曾遇到这个问题,并发现在升级期间,rackspace已删除了“lo”网络接口(意味着IP地址127.0.0.1无法连接),可以通过运行“ping 127.0.0.1”或运行“ifconfig”并检查lo本地主机环回网络接口来轻松检查此问题。 - Omn
尝试:sudo service mysql stop - Abdullah Tahan
1个回答

13

使用 lsof -i TCP:3306 或者 netstat -lp | grep 3306 命令,查看哪个程序正在监听端口 3306 - 必须有一个程序在监听该端口。

您可以考虑在不同的端口上启动服务器(编辑 my.cnf 并在其中更改默认端口)。

您可能需要以 root 用户身份运行此命令,即 sudo lsof -i TCP:3306


1
netstat命令出现无效的语法错误(选项“p”需要一个参数)。 - Michael De Keyser
和Michael一样的问题,netstat给出无效语法,lsof没有返回任何内容。 - Thomas
1
sudo lsof -i TCP:3306 并且它可以工作。 - Jean Y.C. Yang
@Erwai的回答已更新;谢谢。 - Richard Harrison

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接