Ana*_*dra 9 mysql homebrew install
[(pyEnv) Anants-MacBook-Pro:litibackend anantchandra$ brew postinstall mysql
==> Postinstalling mysql
==> /usr/local/Cellar/mysql/8.0.11/bin/mysqld --initialize-insecure --user=anantchandra --basedir=/usr/local/Cellar/mysql/8.0.11 --datadir=/usr/local/var/mysql --tmpdir=/tmp
Last 15 lines from /Users/anantchandra/Library/Logs/Homebrew/mysql/post_install.01.mysqld:
2018-06-15 04:41:04 -0700
/usr/local/Cellar/mysql/8.0.11/bin/mysqld
--initialize-insecure
--user=anantchandra
--basedir=/usr/local/Cellar/mysql/8.0.11
--datadir=/usr/local/var/mysql
--tmpdir=/tmp
2018-06-15T11:41:04.901191Z 0 [System] [MY-013169] [Server] /usr/local/Cellar/mysql/8.0.11/bin/mysqld (mysqld 8.0.11) initializing of server in progress as process 37841
2018-06-15T11:41:04.903504Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2018-06-15T11:41:04.903537Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-06-15T11:41:04.903701Z 0 [System] [MY-010910] [Server] /usr/local/Cellar/mysql/8.0.11/bin/mysqld: Shutdown complete (mysqld 8.0.11) Homebrew.
Warning: The post-install step did not complete successfully
You can try again using `brew postinstall mysql`
Run Code Online (Sandbox Code Playgroud)
对于想要的人,我能够回到5.7:
brew uninstall mysql
brew install mysql@5.7
brew link --force mysql@5.7
mysql.server start
mysql_secure_installation
Run Code Online (Sandbox Code Playgroud)
毕竟,我回到5.7,我的所有数据库都完好无损.就我而言,我知道数据库中的数据并不重要,所以我没有提前备份数据.为我工作得很好.如果您的本地数据库中有不可替代的数据,您可能需要谨慎行事.我没有丢失数据,但我也不希望其他任何人丢失我的建议数据.;)
通常情况下,我不介意MySQL升级,但8.0看起来有兼容性问题,我想在开始前审查,同时,我宁愿回到一个不强迫我交易的版本有这些问题.
安装或重新安装brew install mysql创建了默认数据目录,安装后不处理它...
只需移动现有的数据目录(这会将其移动到同级目录,以 shell 的进程 ID 命名):
$ mv /usr/local/var/mysql /usr/local/var/mysql-$$
Run Code Online (Sandbox Code Playgroud)
或者可能需要超级用户权限...
$ sudo mv /usr/local/var/mysql /usr/local/var/mysql-$$
Run Code Online (Sandbox Code Playgroud)然后运行:
$ brew postinstall mysql
Run Code Online (Sandbox Code Playgroud)首先,备份数据目录的内容:/usr/local/var/mysql将其复制到安全的地方。
发生错误是因为安装后脚本检查文件是否/usr/local/var/mysql/mysql/user.frm存在。无论出于何种原因,您没有此文件。mysqld然后,安装后脚本尝试通过运行来安装新的 MySQL 8 数据库--initialize-insecure,但由于该目录已包含 MySQL 5.7 中的一些数据,因此脚本停止。
这是脚本的相应部分mysql.rb:
def post_install
# Make sure the datadir exists
datadir.mkpath
unless (datadir/"mysql/user.frm").exist?
ENV["TMPDIR"] = nil
system bin/"mysqld", "--initialize-insecure", "--user=#{ENV["USER"]}",
"--basedir=#{prefix}", "--datadir=#{datadir}", "--tmpdir=/tmp"
end
end
Run Code Online (Sandbox Code Playgroud)
有几种可能的解决方案。如果您仍然可以运行 MySQL 5.7 数据库,请使用mysqldump导出所有内容,然后通过删除所有内容来安装新的 MySQL 8 数据库,/usr/local/var/mysql然后再次导入所有内容。另一个解决方案是使用mysql_upgrade 工具。
PS:就我个人而言,我使用公式mysql@5.7,将来我将切换到MariaDB。
| 归档时间: |
|
| 查看次数: |
5078 次 |
| 最近记录: |