我刚从MySQL网站下载的dmg包中的macOS High Sierra v10.13.4上安装了MySQL v8.0.11。安装期间安装程序未要求任何权限或访问设置。
安装完成后,我试着跑:
$ mysql -u root
我收到了错误ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
。
然后我尝试使用sudo
运行相同的命令,但我返回了相同的错误。
对类似问题的回答,我试着跑:
sudo /etc/init.d/mysql stop
它返回错误sudo: /etc/init.d/mysql: command not found
如果那时我继续尝试下一步是什么
sudo mysqld_safe --skip-grant-tables
我退回了输出
[2] 27806
[2] + 27806 suspended (tty output) sudo mysqld_safe --skip-grant-tables
另外,运行
mysqld --skip-grant-tables
返回以下错误:
mysqld: Can't change dir to '/usr/local/mysql-8.0.11-macos10.13-x86_64/data/' (OS errno 13 - Permission denied)
2018-04-20T14:29:23.579709Z 0 [System] [MY-010116] [Server] /usr/local/mysql-8.0.11-macos10.13-x86_64/bin/mysqld (mysqld 8.0.11) starting as process 29470
2018-04-20T14:29:23.593533Z 0 [Warning] [MY-010091] [Server] Can't create test file /usr/local/mysql-8.0.11-macos10.13-x86_64/data/Faheems-MacBook-Air.lower-test
2018-04-20T14:29:23.593582Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /usr/local/mysql-8.0.11-macos10.13-x86_64/data/ is case insensitive
2018-04-20T14:29:23.593863Z 0 [ERROR] [MY-010172] [Server] failed to set datadir to /usr/local/mysql-8.0.11-macos10.13-x86_64/data/
2018-04-20T14:29:23.593889Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-04-20T14:29:23.594332Z 0 [System] [MY-010910] [Server] /usr/local/mysql-8.0.11-macos10.13-x86_64/bin/mysqld: Shutdown complete (mysqld 8.0.11) MySQL Community Server - GPL.
它仍然无法解决原始错误或让我运行mysql。 我在相关问题上几乎尝试了所有答案,但没有任何效果。
感谢任何可以提供帮助的人!
答案 0 :(得分:2)
尝试了一些修复后,我用
启动了MySQL服务器
$ sudo mysql.server start
然后继续$ mysql_secure_installation
为root用户设置密码。
这对我有用。
注意:Homebrew要求您在首次启动MySQL服务器之前首先执行mysql_secure_installation
,但这会导致上述错误。
答案 1 :(得分:0)
确实如此
<块引用>Homebrew 要求你先做 mysql_secure_installation 第一次启动 MySQL 服务器,但结果是 上述错误。
解决方案:
Download and Install mysql without brew。在此处指定您想要的密码,或根据安装程序可能提到的版本指定密码
为mysql设置路径
export PATH=$PATH:/usr/local/mysql/bin
检查是否安装正确mysql --version
mysql -uroot p
登录
根据需要更改密码mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root')