【问题标题】:Another mysqld server running on port 3306 error [closed]在端口 3306 上运行的另一个 mysqld 服务器错误 [关闭]
【发布时间】:2012-04-12 16:02:04
【问题描述】:

我已经在 Mac OS X 10.7 Lion 上安装了 Mysql 5.1。但是,由于某种原因,当我尝试使用命令“mysqld”启动服务器时,我在日志文件中收到错误消息:

120328 21:32:40 [错误] 无法启动服务器:在 TCP/IP 端口上绑定:地址已在使用中

120328 21:32:40 [错误] 您是否已经在端口:3306 上运行了另一个 mysqld 服务器?

120328 21:32:40 [错误] 中止

如果我在终端中运行“netstat -nat | grep 3306”,我会得到以下信息:
tcp4 0 0 *.3306 .

更新:

所以这是输出。
mysqld 24645 sb1752 12u IPv4 0xffffff8010f6bde0 0t0 TCP *:mysql (LISTEN)

这很奇怪!因为我的mysql服务器没有启动。
当我在命令行中输入“mysql”时,它会显示
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

我确实安装了其他版本的mysql并在今天早些时候卸载了。知道在这里做什么吗?

【问题讨论】:

  • ps -ef " grep mysql 的输出是什么?
  • @Tim,这个问题是怎么跑题的?
  • 在 MacBook Pro 上使用 brew services stop mysql 然后使用 MAMP pro 或 brew services start mysql 重新启动 mysql

标签: mysql installation


【解决方案1】:

您可以使用netstat -lp | grep 3306 找出正在侦听端口 3306 的程序(您应该在最后一列中看到 PID/程序名称)并停止它(也许 mysql 已经在运行?)。

或者,您可以在不同的端口上启动新安装的服务器。 (编辑my.cnf 并更改默认端口)

【讨论】:

  • 谢谢。如何停止其他mysql?我以为我只有一个。另一个会在哪里?
  • 试试/etc/init.d/mysqld stop或使用kill <pid>
  • 要获得上面评论的<pid>,您可以从下面的答案中运行命令。 lsof -i TCP:3306。谢谢大家
【解决方案2】:

使用lsof -i TCP:3306查看哪个程序绑定了3306端口

【讨论】:

  • 这是一个不错的方法,因为它还可以捕获任何隧道以及您可能设置的其他东西。我在隧道上使用 scp 并在 3306 上绑定了一个隧道
  • 就我而言,这个答案为我提供了解决此错误的方法。我检查了一个 mysqld 进程正在该端口上运行,然后我杀死了。然后,我可以通过brew重启mysql服务器来启动mysql(我猜在mysql.server和brew services两种方式启动mysql服务器时出错)。
  • 必须添加 sudo 才能使其正常工作 sudo lsof -i TCP:3306 然后 sudo kill [pidid]
  • 完美,运行你的命令并使用上面的答案来终止服务
猜你喜欢
  • 2020-07-26
  • 2020-06-17
  • 2021-06-15
  • 2016-07-03
  • 1970-01-01
  • 2013-02-19
  • 1970-01-01
  • 1970-01-01
  • 2019-06-23
相关资源
最近更新 更多