【问题标题】:whenever I kill object taking port 3306, it replaces it with a new one每当我杀死占用端口 3306 的对象时,它都会将其替换为新的
【发布时间】:2017-06-03 11:32:20
【问题描述】:

我正在尝试为 XAMPP 的 mysql 开放端口 3306。目前在 3306 端口上运行了另一个 mysql。我的系统上似乎有两个单独的 mysql 运行?我已经杀死了mysql以打开端口,然后通过XAMPP管理器启动了mysql,它启动得很好。

我遇到的另一个问题是我被 phpmyadmin 锁定并且无法重新进入,但是在我让 XAMPP mysql 备份并运行之前,我对此无能为力。

sudo netstat -tlpn | grep 3306 

演出:

tcp        0      0 127.0.0.1:3306          0.0.0.0:*     LISTEN      30109/mysqld    

我可以跑

sudo kill -9 30109

似乎它只是杀死了那个进程。如果我再次运行 netstat,它只会用新进程替换该进程。

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      30310/mysqld    

有谁知道它为什么这样做?关于如何释放它的任何建议?

【问题讨论】:

  • 从长远来看,杀死另一个 mysql 实例并不能解决您的问题。相反,您应该确保您只安装并运行了 1 个 mysqld 实例。您可能需要使用apt-get 来安装或删除必要的软件包。
  • 关于如何检查哪个是哪个的任何建议?我想删除我不使用的那个。这样我就可以解决我在 phpmyadmin 中遇到的另一个问题
  • 使用dpkg -l | grep mysql 查看已安装的软件包。使用sudo apt-get remove <unnecessary_package> 删除,使用sudo apt-get install <wanted_package> 安装。您可能还需要使用sudo dpkg-reconfigure <wanted_package> 来设置它的自动启动方式。

标签: mysql ubuntu


【解决方案1】:

如果有人看到这篇文章,但没有找到与我的问题类似的问题的答案(仅仅是因为这还没有得到回答),我将发布我自己的解决方案。

我跑了

lsof -i TCP:3306

得到PID,然后运行

kill 'PID#'

它起作用了......我不知道为什么这个过程在前一个没有起作用时起作用,即使 PID# 相同,但无论如何。

【讨论】:

    【解决方案2】:

    这对我有用:

    sudo service mysql stop
    

    【讨论】:

      【解决方案3】:

      与其杀死服务,我建议你停止它:

      sudo service mysqld stop
      

      杀死正在运行的 mysql 实例可能会导致数据库中的数据损坏。

      【讨论】:

        猜你喜欢
        • 2020-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-10
        • 2021-06-03
        • 2019-11-17
        • 1970-01-01
        相关资源
        最近更新 更多