自制,MySQL 8 支持
Posted
技术标签:
【中文标题】自制,MySQL 8 支持【英文标题】:Homebrew, MySQL 8 support 【发布时间】:2018-10-12 01:59:33 【问题描述】:谁知道 Homebrew 何时更新以支持 mysql 8 的第一个通用版本 (8.0.11)?我似乎无法通过搜索找到它,但我敢打赌这里有人知道:)
【问题讨论】:
++ 跟随... 【参考方案1】:Homebrew 昨天(2018 年 6 月 13 日,星期三)推出了 MySQL 8.0.11 作为升级版本。我以为我把它钉住了,但没有这样的运气。
这完全是一场灾难:
MySQL 8.0.11 使用caching_sha2_password
作为默认身份验证方法(将它留给 Oracle 在单点版本中执行类似的操作,但你有它)。
到目前为止,它破坏了我尝试过的一切:phpMyAdmin、Nextcloud 和 WordPress。
我将在今天晚些时候回滚到 5.7.22。
更新 2018 年 6 月 17 日下午 6:50 CDT:
三步解决方案:
添加到 my.cnf
文件的 [mysqld]
部分(在 /usr/local/etc/
中找到 Homebrew 的安装):
default-authentication-plugin=mysql_native_password
在 shell 提示符下:
mysql -u root -p
> ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password
BY '[password]';
> exit
重启服务器
brew services restart mysql
Short version solution
Long version solution
更新于 2018 年 6 月 18 日晚上 11:53 CDT:
上面提供的解决方案充其量只是部分解决方案。根据我的经验,MySQL 8.0.11 还没有准备好用于生产(甚至开发)使用。
【讨论】:
brew 推出 8.0 作为升级到 5.7 是完全疯狂的。 因为 8.0 不能在升级前没有数据库备份的情况下降级到 5.7。此外,更新没有检查我的数据库/表是否可以在 8.0.0 下运行。正如 8.0 升级方案 dev.mysql.com/doc/refman/8.0/en/upgrading-strategies.htmlmysqlcheck -u root -p --all-databases --check-upgrade
中所建议的那样,通过运行它,brew 可以很容易地看到我的数据库在升级之前无法在 8.0 上运行。
我很幸运能够使用brew remove mysql
和brew install mysql@5.7
回滚并保持我的所有数据库完好无损。
在 8.x 升级后回滚并没有任何乐趣,但幸运的是我有一个 /usr/local/var/mysql
的 Time Machine 备份,我可以从中恢复。删除 MySQL 8 (brew remove mysql
) 然后按照上面的指示再次安装 5.7 (brew install mysql@5.7
) 后,它又可以工作了。
@JohnD。是的,这是正确的,只需确保在从磁盘映像复制之前停止 MySQL,然后再重新启动它。这就是我所做的。 RE:所有权,我认为它应该是yourusername:admin
并且 chmod 755 应该适合权限。我不是这方面的专家,所以其他人可能可以提供建议?【参考方案2】:
我设法克服了这个问题,而无需从 mysql 版本 5.7 中删除我的所有数据库。
首先,只需使用此命令升级数据库
mysql_upgrade -u root
https://***.com/a/51486493/2342289
最后。安装 sequel-pro-nightly。我需要这个,因为我可以从命令而不是 sequal-pro 浏览我的数据库。所以,幸运的是,夜间续集可以正常工作。
brew cask install sequel-pro-nightly
然后,繁荣。一切都回来了。叹息。
【讨论】:
【参考方案3】:它正在等待合并到 homebrew-core 中。
https://github.com/Homebrew/homebrew-core/pull/27210
【讨论】:
【参考方案4】:-
使用this site 上的步骤删除了 MySql。
请
brew install mysql@5.7
。
转到this site 并按照从第 4 步开始的说明进行操作。
请务必确定步骤 5 中的路径是否确实存在于您的计算机上。该站点上列出的路径对我不起作用。我必须自己找到它们。首先查看/usr/local
,然后从那里搜索mysql文件夹并挖掘,直到找到他列出的文件。
我在第 7 步停了下来,因为我能够从那里拿走它。希望你也可以。
【讨论】:
以上是关于自制,MySQL 8 支持的主要内容,如果未能解决你的问题,请参考以下文章