自制,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.html mysqlcheck -u root -p --all-databases --check-upgrade 中所建议的那样,通过运行它,brew 可以很容易地看到我的数据库在升级之前无法在 8.0 上运行。 我很幸运能够使用brew remove mysqlbrew 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 支持的主要内容,如果未能解决你的问题,请参考以下文章

如何在自制软件上使用 mpi 支持来构建提升?

对于自制 mysql 安装,my.cnf 在哪里?

xbox360自制系统版本啥版本最好

怎么自制Theme文件?

UNITY如何使用自制DLL?

两周自制脚本语言-第8天 关联Java语言