如何在Mac OS Lion上通过命令行启动MySQL服务器?

229

我在 Mac 上安装了 mySQL。除了使用 System Preferences 中安装的 mySQL.prefPane 工具启动 SQL 服务器外,我还想知道如何通过命令行启动。

我的操作如下:

su root

我尝试使用命令行启动 mySQL 服务器,但出现以下错误:

sh-3.2# /usr/local/mysql/bin/mysqld

111028 16:57:43 [Warning] 因为 /usr/local/mysql-5.5.17-osx10.6-x86_64/data/ 的文件系统大小写不敏感,所以设置 lower_case_table_names=2

111028 16:57:43 [ERROR] 致命错误:请阅读“安全”部分的手册,以了解如何以 root 用户身份运行 mysqld!

111028 16:57:43 [ERROR] 异常终止

111028 16:57:43 [Note] /usr/local/mysql/bin/mysqld:关闭完成


2
在 macOS 上,使用 mdfind mysql.server 命令可以查看您的服务器可执行文件所在位置。 - Benjamin Crouzier
16个回答

390

简单来说:

mysql.server start

mysql.server stop

mysql.server restart


19
这是我得到的信息:. 错误!服务器在更新PID文件(/usr/local/var/mysql/XXXX.pid)时退出。 - nyxee
@nyxee 你可能需要使用 sudo 运行它! - anuveyatsu
1
即使使用sudo,我仍然遇到了相同的错误。在Mac Big Sur和MySQL 5.7上,我需要使用以下命令停止/启动:sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plistsudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist - hamx0r
仅使用“mysql.server start”对我无效。 因此,结合@BenjaminCrouzier的评论,我找到了解决方法。如下:我正在使用macOS 10.13.6 High Sierra:
  1. 使用mdfind mysql.server查看可执行文件的位置。
  2. 将别名添加到我的bash文件(在我的情况下是.zshrc) export MYSQL_SERVER=/usr/local/mysql-8.0.12-macos10.13-x86_64/support-files/ alias mysql.start="sudo $MYSQL_SERVER/mysql.server start" alias mysql.stop="sudo $MYSQL_SERVER//mysql.server stop" alias mysql.restart="sudo $MYSQL_SERVER/mysql.server restart"
  3. 源bash:source ~/.zshrc
完成!
- Fabiano Oliveira

213
尝试使用/usr/local/mysql/bin/mysqld_safe 示例:
shell> sudo /usr/local/mysql/bin/mysqld_safe
(Enter your password, if necessary)
(Press Control-Z)
shell> bg
(Press Control-D or enter "exit" to exit the shell)

你也可以将这些内容添加到你的 bash 启动脚本中:

export MYSQL_HOME=/usr/local/mysql
alias start_mysql='sudo $MYSQL_HOME/bin/mysqld_safe &'
alias stop_mysql='sudo $MYSQL_HOME/bin/mysqladmin shutdown'

2
它可以工作。但我无法从执行命令中退出指针。当终端窗口正在执行时,如何停止它。 - vietstone
12
请注意,如果您使用Homebrew安装了mysql,则此答案不适用。 - cbmanica
对我来说,最终只需要运行“mysqld <action>”,该文件位于/usr/local/mysql/bin/mysqld。 - crobicha

151

我也喜欢使用别名...但是,我在使用MySQLCOM时遇到了问题...它会静默失败...我的解决方法类似于其他人的...~/.bash_aliases

alias mysqlstart='sudo /usr/local/mysql/support-files/mysql.server start'
alias mysqlstop='sudo /usr/local/mysql/support-files/mysql.server stop' 

其他答案在最新的MySQL安装下无法在OSX 10.7.5上运行。这个可以解决问题 - 谢谢! - Irongaze.com
谢谢!我想启动mysql并能够关闭终端,这个方法很有效。这种启动方式和使用mysqld_safe的方式有什么区别? - oli206
1
mysqld_safe vs mysql.server中在mysql.server启动服务器之前,它会更改位置到MySQL安装目录,然后调用mysqld_safe。 - Edward J Beckett
我尝试了这个命令,但它无法启动,而且似乎我无法拥有一个pid文件。我该怎么办? - ray6080
1
@ray6080,我认为你忘记在./mysql.server start前面输入sudo了。从support_files目录中,以下命令对我有效:sudo ./mysql.server start - Austin A
@AustinA 哇!我知道这是一条旧评论,但谢谢你!这对我有用(MySQL 8.0.31,MacOS 版本 12.6.3)。 - Bryan_C

98

正如这篇有用的文章所述: 在操作系统OS X上,要通过命令行启动/停止MySQL:

sudo /usr/local/mysql/support-files/mysql.server start 
sudo /usr/local/mysql/support-files/mysql.server stop 

在Linux中通过命令行启动/停止:

/etc/init.d/mysqld start 
/etc/init.d/mysqld stop 
/etc/init.d/mysqld restart 

一些Linux发行版也提供了service命令。

# service mysqld start 
# service mysqld stop 
# service mysqld restart
或者
 # service mysql start 
 # service mysql stop 
 # service mysql restart 

/usr/local/mysql/support-files/mysql.server stop 中出现了“没有此文件或目录”的错误。 - nyxee

81

如果你使用homebrew安装它,二进制文件应该会被安装在一些类似于下面的地方:

/usr/local/Cellar/mysql/5.6.10/bin/mysqld

这意味着你可以用

/usr/local/Cellar/mysql/5.6.10/support-files/mysql.server start

停止这种行为

/usr/local/Cellar/mysql/5.6.10/support-files/mysql.server stop

编辑:如Jacob Raccuia所提到的,确保在路径中放置适当版本的MySQL。


1
哎呀!!!!我没意识到我是这样安装的!请确保将适当版本的MySQL放在路径中。 - Jacob Raccuia

48

也许你的mysql服务器没有启动。

你可以尝试:

/usr/local/bin/mysql.server start

截至2022年1月9日,此代码可在Mac OSX Big Sur上运行! - K M Rakibul Islam

32
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop

如何在 .bash_profile 中创建别名?

alias start_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM start"
alias stop_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM stop"

如果你正在尝试以root身份运行,请使用以下安全模式

sudo ./bin/mysqld_safe

如果您仍然遇到启动问题,建议阅读: mysql5.58在Mac OS 10.6.5中无法启动服务器


14

对于我来说,在mac Sierra操作系统上,这个解决方案起作用:

sudo /usr/local/bin/mysql.server start
Starting MySQL
SUCCESS!

2
对我来说,路径是/usr/local/mysql/support-files/mysql.server - undevable
请为我提供/usr/local/Cellar/mysql/8.0.29/bin/mysql.server。这取决于您的安装方式。显然,Cellar是MacOS上的Brew。 - Quan Truong

12

我使用homebrew在OS X El Captain上安装了MySQL。解决方法是运行

brew doctor

  • 它建议我运行

sudo chown -R $(whoami):admin /usr/local

然后:

brew update
mysql.server start

MySQL现在正在运行


不知道为什么有人踩了这个。我在进行brew更新时也遇到过这种情况。运行brew doctor,然后按照说明将特定路径添加到我的bash配置文件中即可解决问题。感谢您的建议。 - Nostalg.io

9
如果您使用的是Homebrew安装的MySQL,只需在终端中键入mysql.server即可。AFAIK可执行文件位于/usr/local/bin/mysql.server。
如果没有安装Homebrew,您可以运行"locate mysql.server"命令以查找该文件的位置。

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