如何在Macbook上安装MySQL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Macbook上安装MySQL相关的知识,希望对你有一定的参考价值。

安装方法步骤如下:

1、工具需求

(1)mysql

2、首先下载MySQL安装包,如果是第一次安装,建议下载DMG安装包,打开DMG安装包,双击安装包里的PKG文件,如图

3、接下来一路点击“继续”,最后点击“完成”,安装完成后,打开“系统偏好设置”,可以看到多处一个MySQL图标,如图

(1)然后点击“MySQL”图标,在弹出的界面中,我们注意到MySQL已经启动,并且是开机自启动

(2)此时安装好后,最好再创建能在终端中直接使用的MySQL快捷命令。打开终端,输入命令:如图

4、在bashrc中添加创建别名的命令:alias mysql '/usr/local/mysql/bin/mysql'alias mysqladmin '/usr/local/mysql/bin/mysqladmin'编辑完后,需要使用“wq!”命令强制保存内容,如图

5、重启终端,然后设置MySQL的root帐号,输入命令mysqladmin -u root password 123456

PS:在执行上述命令时可能报错:

mysqladmin: connect to server at 'localhost' failed

error: 'Access denied for user 'root'@'localhost' (using password: NO)'

如果碰到,可参考《connect to server at 'localhost' failed》

参考技术A 一 下载MySQL

访问MySQL的官网http://www.mysql.com/downloads/ 然后在页面中会看到“MySQL Community Server”下方有一个“download”点击。
进入MySQL的下载界面(http://www.mysql.com/downloads/mysql/),如果你是用的Mac OS来访问的话那么就会默认为你选好了Mac OS X 平台,而下面罗列的都是在Mac OS上能用的MySQL的版本,如果是用的其他平台,在“Select Platform”选项的下拉列表中选一下就好了。
在Mac OS上的MySQL的版本很多,其中有按平台来的,比如10.8/10.9等平台,然后有32位的和64位的,这个你按照自己系统的情况来进行选择,然后就是文件的后缀名有.tar.gz的和.dmg的,这里我选择的是.dmg的。点击右侧的download进行下载。
然后会跳转到另外一个界面,这个界面是提示你需不需要注册的,直接选择最下面的“No thanks,just take me to downloads!”,然后这才真正跳转到了下载的界面,这个界面列了很多的供下载的服务器,选择一个服务器进行下载就OK了。
二 安装MySQL
打开MySQL的安装包:
有三个文件
有版本显示是的主文件,另外两个是
MySQL_StartupItem.pkg:MySql的启动项;
MySQL.prefPane:安装完成后会在系统的偏好设置里面出现,是MySQL的偏好设置,里面主要是用来启动MySQL服务的.

通过运行“sudo vi /etc/bashrc”,在bash的配置文件中加入mysql和mysqladmin的别名
#mysql
alias mysql='/usr/local/mysql/bin/mysql'
alias mysqladmin='/usr/local/mysql/bin/mysqladmin'
这样就可以在终端中比较简单地通过命令进行相应的操作,比如安装完毕之后MySQL的root默认密码为空,如果要设置密码可以在终端运行“mysqladmin -u root password "mysqlpassword"”来设置,其中mysqlpassword即root的密码。
备注:使用php连接MySQL可能会报错“Can't connect to local MySQL server through socket ‘/var/mysql/mysql.sock'”,或者使用localhost无法连接MySQL而需要127.0.0.1,原因是连接时候php默认去找/var/mysql/mysql.sock了,但是MAC版本的MYSQL改动了文件的位置,放在/tmp下了。处理办法是按如下修改php.ini:
mysql.default_socket = /tmp/mysql.sock本回答被提问者采纳

如何使用 Homebrew 在 macOS BigSur (Apple Silicon) 上安装和启动 MySQL 5.7?

【中文标题】如何使用 Homebrew 在 macOS BigSur (Apple Silicon) 上安装和启动 MySQL 5.7?【英文标题】:How to install and start MySQL 5.7 on macOS BigSur (Apple Silicon) with Homebrew? 【发布时间】:2021-06-11 13:47:48 【问题描述】:

我需要使用 M1 在我的 MacBook 上安装特定版本的 MySQL (5.7)。

我正在尝试使用 Homebrew 来做到这一点。

brew install mysql@5.7

输出:

We've installed your MySQL database without a root password. To secure it run:
    mysql_secure_installation

MySQL is configured to only allow connections from localhost by default

To connect run:
    mysql -uroot

mysql@5.7 is keg-only, which means it was not symlinked into /opt/homebrew, because this is an alternate version of another formula.

If you need to have mysql@5.7 first in your PATH, run:   echo 'export PATH="/opt/homebrew/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc

For compilers to find mysql@5.7 you may need to set:   export LDFLAGS="-L/opt/homebrew/opt/mysql@5.7/lib"   export CPPFLAGS="-I/opt/homebrew/opt/mysql@5.7/include"


To have launchd start mysql@5.7 now and restart at login:   brew services start mysql@5.7 Or, if you don't want/need a background service you can just run:   /opt/homebrew/opt/mysql@5.7/bin/mysql.server start

然后,我尝试运行:

echo 'export PATH="/opt/homebrew/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc
source .zshrc
mysql_secure_installation

并得到错误:

Securing the MySQL server deployment.
Enter password for user root: 
Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

另外,我尝试过: brew services start mysql@5.7

也得到错误:

Error: Permission denied @ rb_sysopen - /Users/vivanc/Library/LaunchAgents/homebrew.mxcl.mysql@5.7.plist

似乎存在与权限相关的问题。 任何建议表示赞赏。

【问题讨论】:

我遇到了同样的问题,尝试清理所有内容并重新安装 MySQL,但仍然没有成功 【参考方案1】:

虽然这个问题是针对 Apple Silicon 和 mysql 5.7 的,我将在这个答案中解决这个问题,但我想首先添加一些一般说明以节省其他人的时间:

Homebrew 支持英特尔和苹果芯片的 mysql 5.7。 https://formulae.brew.sh/formula/mysql@5.7

Homebrew 支持英特尔芯片的 mysql 5.6,但不支持苹果芯片: https://formulae.brew.sh/formula/mysql@5.6

如果您需要 Apple 芯片上的 5.6,那么只解决 5.7 可能是一个好主意,因为最终需要升级生产并且差异不会那么大。

在我的情况下,我最初是 brew install mysql,它给了我最新的 mysql(目前是 8.0)。当我尝试返回并执行brew install mysql@5.6 时,由于 m1 max(苹果硅)不支持,这当然行不通。我遇到了问题,然后试图让brew install mysql@5.7 工作。我遵循了一些指南,提到了各种建议。玩了一段时间后,似乎同时运行两个版本的 mysql 会损坏你的 mysql 文件并使其难以使用并混淆自制软件。

我遇到了这些指南:brew install mysql on macOShttps://coderwall.com/p/os6woq/uninstall-all-those-broken-versions-of-mysql-and-re-install-it-with-brew-on-mac-maverickshttps://www.codegrepper.com/code-examples/shell/brew+uninstall+mysql

在进一步阅读之前,请注意,在我的情况下,我有一个 zip 可用于我的整个本地 mysql 数据库需求,并且可能会破坏我所拥有的。

警告!进一步阅读并不小心执行这些命令可能会删除您的 mysql 存储。确保您有备份。

brew remove mysql 是一个很好的命令,它摆脱了我最新的安装。 我还需要brew remove mysql@5.7,尽管这是我正在尝试安装的版本,但他们互相踩了脚……

brew cleanup 不错,我注意到它释放了一些锁定文件。

我不记得有任何运气: launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 不过你可以试试。

rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 为我工作。 但请注意,您的 5.7 设置中还会有另一个文件。 我建议: cd ~/Library/LaunchAgents/ 然后环顾四周,看看你那里是否有任何 mysql*。然后如果你这样做了,比如homebrew.mxcl.mysql@5.7.plist,那就删除它。

这些对我有用:

sudo rm -rf /usr/local/var/mysql
rm /usr/local/etc/my.cnf
rm /usr/local/etc/my.cnf.default

还有:

cd opt/homebrew/var

然后,如果您注意到那里有一个 mysql 目录,请将其删除。

你可能有 docker 或其他类似的东西也在运行 mysql 或 mysqld。ps -ax | grep "[m]ysql" (注意上面的括号和引号是为了防止 grep 出现在进程列表中并与懒惰的版本相匹配:ps -ax | grep mysql 这会让人觉得有一个额外的 mysql 进程正在运行)

准备就绪后,请运行: brew services list 仔细检查你那里没有mysql。 然后仔细检查您没有运行任何 mysql 进程:ps -ax | grep "[m]ysql" 例如,如果您输入mysqld,就会发生这种情况...... 如果您在服务列表或进程列表上看到任何内容,您可能需要执行 brew services stop mysqlbrew services stop mysql@5.7 或类似操作并重复步骤。

最后,您应该准备好进行全新安装了。 全新的安装过程应该相当简单:

brew install mysql@5.7
brew link --force mysql@5.7
brew services start mysql@5.7

然后运行brew services list 以确保您的安装工作正常。 如果您看到它是绿色的并且“已启动”,则您的安装成功了!

您还应该运行: mysql_secure_installation 然后为 root 选择一个密码,并浏览验证等问题列表。

安装后,您可能还会遇到 mysql 模式问题。 cd /opt/homebrew/etc 你应该找到一个 my.cnf 文件。 使用 vim 或 nano 编辑它。 您应该会看到如下内容:

# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1

编辑它并设置mysql模式。例如,我不想要 no_zero_in_date 模式,所以我使用:

# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
sql-mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

然后像这样重启mysql:brew services restart mysql@5.7

然后仔细检查您是否仍然处于“已启动”绿色状态:brew services list 如果你这样做了,那么你应该禁用 no_zero_in_date 模式。 您可以通过查询进行测试:SELECT @@sql_mode;

您现在应该在 Apple Silicon 上运行 mysql 5.7 并设置了 sql_mode。

如果您遇到更多故障排除,请尽量进入已知状态,例如已卸载、重新安装或已安装某个版本等。

【讨论】:

【参考方案2】:

如果您遇到诸如“Can't connect to local MySQL server through socket '/tmp/mysql.sock'”或“The post-install step did not complete successfully MySQL”之类的问题,并且您之前安装了以前版本的 mysql(例如 8.x),那么您可能已经到了需要清理的地方重新安装首选版本的 mysql@xx 之前的所有内容

如果您已经访问过这些链接: Uninstall all those broken versions of MySQL and re-install it with Brew on Mac Mavericks (Coderwall) + Install MySQL 5.7 on macOS using Homebrew (github) 并且您在启动 mysql 服务时仍然遇到问题,您应该尝试同时删除 /opt/homebrew/etc/my.cnf 文件。

也将其连同所有相关文件一起删除! M1 Apple Silcion机器总结,通过brew uninstall mysqlbrew uninstall mysql@x.x卸载后,请删除:

/opt/homebrew/var/mysql
/opt/homebrew/etc/my.cnf

在此之后,一切都像全新安装一样(对我而言)。希望这可以节省一些人的时间。

【讨论】:

我有同样的问题,只是 MySQL 8 和 5.7 之间的冲突。我都卸载了,然后再次重新安装了 5.7 并且它工作了【参考方案3】:

在设置我的 Apple M1 Macbook Pro 时,我遇到了以下错误消息的问题:

Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

我的解决方法是修改 MySQL 配置文件:

nano /usr/local/etc/my.cnf

添加以下行:

tmpdir=/tmp
user=root

然后运行:

brew services restart mysql@5.7

这解决了我的问题,然后我能够成功连接到我的数据库客户端。

【讨论】:

【参考方案4】:

我收到了这个警告:

You should change the ownership of these directories to your user.
  sudo chown -R $(whoami) /usr/local/share/doc /usr/local/share/man /usr/local/share/man/man1

And make sure that your user has write permission.
  chmod u+w /usr/local/share/doc /usr/local/share/man /usr/local/share/man/man1

我运行这两个命令然后它工作。

【讨论】:

【参考方案5】:

似乎我找到了解决方案(或解决方法)。

使用 Homebrew 安装 MySQL 5.7 后,只需运行:

mysql.server start

MySQL 已启动,然后您可以运行mysql_secure_installationmysql 命令。

【讨论】:

【参考方案6】:

经过几个小时的搜索,我解决了这个问题,这是因为我没有清理我之前安装的 MySQL 8.X 的所有内容。我关注了this,当我意识到那里没有大部分文件夹时,我开始怀疑。然后我在我的计算机上搜索了所有名为mysql 的文件夹,并在opt/homebrew/var 中找到了一个mysql 文件夹。删除它后,重新安装 MySQL 5.7,并启动服务器,一切都按预期工作。

【讨论】:

那么,现在您可以使用brew services start mysql@5,7 启动/停止 MySQL 服务器,而不会出现任何权限错误?我在新的 macOS 上没有任何以前安装的 MySQL 出现这些错误。 是的,这是正确的,也许我们当时没有同样的问题 但是 /opt/homebrew/var/mysql 包含表数据!我不能删除它。

以上是关于如何在Macbook上安装MySQL的主要内容,如果未能解决你的问题,请参考以下文章

如何在Macbook上安装MySQL

如何在Macbook上安装MySQL

如何使用 Homebrew 在 macOS BigSur (Apple Silicon) 上安装和启动 MySQL 5.7?

MacBook M1电脑安装mysql 超详细

macbook 访问mysql 的具体步聚

MacBook 安装 MySQL 5.7.29(新手都看得懂的安装教程)