【问题标题】:How to stop mysqld如何停止mysqld
【发布时间】:2012-06-20 22:16:59
【问题描述】:

要找出 mysqld 的启动命令(使用 mac),我可以这样做:

ps aux|grep mysql

我得到以下输出,它允许我启动 mysql 服务器。

/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=...

如何找到从命令行停止 mysql 的必要命令?

【问题讨论】:

标签: mysql macos


【解决方案1】:

试试:

/usr/local/mysql/bin/mysqladmin -u root -p shutdown 

或者:

sudo mysqld stop

或者:

sudo /usr/local/mysql/bin/mysqld stop

或者:

sudo mysql.server stop

如果您在 OSX 中安装 Launchctl,您可以尝试:

Mac 端口

sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql.plist
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql.plist

注意:重启后会持续存在。

自制

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

二进制安装程序

sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart

我发现在:https://stackoverflow.com/a/102094/58768

【讨论】:

  • 谢谢,/usr/local/mysql/bin/mysqladmin -u root shutdown 成功了。
  • 如果它是开发环境并且没有定义密码,这将起作用:/usr/local/mysql/bin/mysqladmin -u root shutdown
  • 中间选项有效,但只能添加“服务”:service mysqld stop
  • 天哪,为什么我使用了上面所有这些,它还在运行?就像病毒一样!
  • 如果我以$ mysqld 运行mysql 怎么办? (就在终端)。那我怎么杀?因为 CTRL-C 不起作用.. 我知道 kill 会杀死它,但只是想知道 mysqld 是否有一个转义序列。
【解决方案2】:

有另一种方法可以通过调用来杀死守护进程

kill -TERM PID

其中PID 是存储在文件mysqld.pid 中的值或可以通过发出命令ps -a | grep mysqld 获得的mysqld 进程ID。

【讨论】:

  • 这是一个很高兴知道 b/c 的事实,它实际上会杀死进程,因为“kill -9 PID”只是没有这样做。
  • @lordB8r b/c 是什么意思?我尝试了 kill -9 mysqld(pid) 但之后它立即重新启动,这对我来说是一种折磨。
  • @Zen 改用kill -TERM mysqld(pid),整个进程树将被杀死,不允许重生。
  • 是的,操作是安全的,因为 RDB 保证 ACID 属性。
  • 我尝试了 kill -term PID,它确实杀死了它,但如果我运行 ps -a | grep mysqld, mysqld 进程以新的 PID 重新启动。
【解决方案3】:

我用下一个命令做到了:

sudo killall mysqld

【讨论】:

    【解决方案4】:

    I found the answer here.

    使用

    sudo stop mysql
    

    【讨论】:

    • 这适用于我的 AWS ubuntu mysql 安装。 'kill -TERM pid' 不适用于我的情况。谢谢。
    • sudo mysql stop 为我(数字海洋 - ghost-512mb-lon1-01)。
    • 我收到了这个错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
    【解决方案5】:

    对于 Windows,如果 mysql/bin 在您的路径中,您可以直接运行此命令。

    mysqladmin -u root -p shutdown
    

    【讨论】:

      【解决方案6】:

      在 mac 上为我工作

      a) 停止进程

      sudo launchctl list | grep -i mysql
      

      如果结果显示类似: "xxx.xxx.mysqlxxx"

      sudo launchctl remove xxx.xxx.mysqlxxx
      

      示例: sudo launchctl remove org.macports.mysql56-server

      b) 禁用自动启动进程

      sudo launchctl unload -wF /Library/LaunchDaemons/xxx.xxx.mysqlxxx.plist
      

      示例: sudo launchctl unload -wF /Library/LaunchDaemons/org.macports.mysql56-server.plist

      • 最后重启你的mac

      注意:在某些情况下,如果您先尝试 "a)",则需要再次重启,然后再尝试 b)

      【讨论】:

        【解决方案7】:

        在 OSX 10.8 及更高版本上,可以从系统配置中获得对 MySQL 的控制。打开系统偏好设置,单击 Mysql(通常在最底部)并从该窗格启动/停止服务。 https://dev.mysql.com/doc/refman/5.6/en/osx-installation-launchd.html

        plist 文件现在位于 /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist 下

        【讨论】:

        • 作为记录,我尝试了上述所有方法,但都没有阻止额外的 MySQL 进程。通过系统偏好设置和搜索 MySQL 就可以解决问题 - 谢谢!
        • 谢谢,这行得通。这也是您可以找到卸载按钮的地方。
        • 这对大多数人都有效:gist.github.com/vitorbritto/0555879fe4414d18569d 但为了安全起见,请在第 6 步之前尝试第 7 步
        【解决方案8】:

        对于二进制安装程序使用这个:

        停止:

        sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
        

        开始:

        sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
        

        重启:

        sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart
        

        【讨论】:

          【解决方案9】:

          杀死绝对是错误的方式! PID 将保留,Replicationsjobs 将被杀死等等。

          停止 MySQL 服务器

          /sbin/service mysql 停止

          启动 MySQL 服务器

          /sbin/service mysql 启动

          重启 MySQL 服务器

          /sbin/service mysql重启

          如果您没有足够的权限,可能需要 sudo

          【讨论】:

            【解决方案10】:

            当 mysql 与 Homebrew 一起安装时,它会在被杀死时自动重新启动。您需要使用以下命令:

            brew services stop mysql
            

            PS:如果安装的是特定版本,则为mysql@X.X

            【讨论】:

            • 我也发现了!很简单。我希望 brew 刚刚宣布它有一个 services 部分,并且不能使用 sudo 从外部关闭此类服务(顺便说一句,这似乎很粗略)
            • 如果是特定版本,则需要使用brew services list然后brew services stop mysql@5.7找到特定版本。见dba.stackexchange.com/questions/124974/…
            【解决方案11】:

            尝试连续四次杀死mysqld。这是唯一对我有用的东西......

            root@ubuntu:/etc/init# killall -KILL mysqld 
            root@ubuntu:/etc/init# killall -KILL mysqld 
            root@ubuntu:/etc/init# killall -KILL mysqld 
            root@ubuntu:/etc/init# killall -KILL mysqld 
            mysqld: no process found
            

            继续一遍又一遍地杀死它,直到你看到“mysqld: no process found”。

            【讨论】:

            • 这似乎是一种解决方法。为什么是4次?不是一个好的解决方案。
            【解决方案12】:

            在 CentOS 6.4 上对我有用的是以 root 用户身份运行 service mysqld stop

            我在nixCraft找到了我的答案。

            【讨论】:

            • 问题是关于mac的
            【解决方案13】:
            /etc/init.d/mysql stop
            service mysql stop
            killall -KILL mysql mysqld_safe mysqld
            
            When you see the following information, you success
            
            mysql: no process found
            mysqld_safe: no process found
            mysqld: no process found
            

            我用这个解决了在Ubuntu 15.10中使用this link安装MySQL 5.6的问题。

            在此安装过程中,我遇到的问题是:

            "mysqld_safe A mysqld process already exists"
            

            只要彻底停止mysqld,mysqld_safe,mysql就解决了问题。

            【讨论】:

              【解决方案14】:

              如果我的mysql不断重启
              sudo rm -rf /usr/local/var/mysql/dev.work.err
              mysql.server stop
              为我工作。

              【讨论】:

              • mysql.server stop 提示这个错误:zsh: command not found: mysql.server
              【解决方案15】:

              要在启动时停止 mysql 的自动启动,以下对我有用,使用 macOS Mojave 10.14.1 中的 Homebrew 安装了 mysql 8.0.12

              rm -rf ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
              

              【讨论】:

                【解决方案16】:

                停止 MariaDB 和 MySQL 服务器实例:

                sudo mysqladmin shutdown
                

                启动 MariaDB 和 MySQL 服务器实例:

                mysqld &
                

                更改 MariaDB 和 MySQL 服务器实例的数据所有权:

                sudo chown -R 755 /usr/local/mariadb/data
                

                【讨论】:

                  【解决方案17】:
                  1. 只需转到任务管理器即可。
                  2. 然后在进程中,搜索 mysqld。
                  3. 右键单击 mysqld 然后单击停止。
                  4. 通过此过程,您无需使用命令即可停止它。

                  【讨论】:

                    【解决方案18】:

                    对于从二进制文件下载到MacOS的mysql 5.7:

                    sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
                    sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
                    

                    【讨论】:

                      【解决方案19】:

                      以下在我的 macbook pro 上为我工作:

                      brew 服务停止 mysql

                      如果您想停止所有 brew 服务:

                      brew services stop --all

                      【讨论】:

                        【解决方案20】:

                        对于 MAMP

                        1. 停止服务器(但您可能会注意到 MySQL 保持打开状态)
                        2. 删除或重命名包含mysql.pidmysql.sock.lock 文件的/Applications/MAMP/tmp/mysql/
                        3. 当您返回 Mamp 时,您会看到 MySQL 现已关闭。您可以再次“启动服务器”。

                        【讨论】:

                        • 这将在 mysql_error_log 文件中给出 '/Applications/MAMP/tmp/mysql' for UNIX socket file don't exist'
                        猜你喜欢
                        • 2016-02-04
                        • 2014-11-04
                        • 2014-12-10
                        • 2015-09-15
                        • 1970-01-01
                        • 2012-08-20
                        • 2018-10-12
                        • 1970-01-01
                        • 2022-01-21
                        相关资源
                        最近更新 更多