我正在尝试使用Homebrew by brew install mysql 5.1.52
在mac os 10.6上设置MySQL .
一切顺利,我也成功了 mysql_install_db
.
但是当我尝试使用以下命令连接到服务器时:
/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin -u root password 'mypass'
我明白了:
/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin: connect to server at 'localhost'
failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'
我也尝试过访问 mysqladmin or mysql using -u root -proot
,
但无论是否有密码都无效 .
这是在全新机器上的全新安装,据我所知,必须可以在没有root密码的情况下访问新安装 . 我也尝试过:
/usr/local/Cellar/mysql/5.1.52/bin/mysql_secure_installation
但我也明白了
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
14 回答
如果brew安装了MySQL 5.7,则该过程与以前的版本略有不同 . 要重置root密码,请执行以下操作:
临时密码将打印到控制台,它只能用于更新root密码:
我认为已经安装了旧版本的mysql,最终可能会处于这个位置 . 我遇到了同样的问题,上述解决方案都没有对我有用 . 我这样解决了:
使用brew的
remove
&cleanup
命令,卸载了launchctl
脚本,然后删除了/usr/local/var
中的mysql目录,删除了我现有的/etc/my.cnf
(请保留那个,如果它适用)和launchctl plist更新了plist的字符串 . 另请注意,您的备用安全脚本目录将基于您要安装的MySQL版本 .
一步步:
然后我从头开始:
用
brew install mysql
安装了mysql运行brew建议的命令:(见下面注释)
用
mysql.server start
命令启动mysql,以便能够登录它使用备用安全脚本:
launchctl
部分,例如,希望有人帮助!
Note:
brew cleanup
上的--force
位也将清理过时的小桶,认为这是一个新的自制功能 .Note the second: 评论者说第2步不是必需的 . 我不想测试它,所以YMMV!
这里有详细的说明,结合摆脱Mac上的所有MySQL,然后安装它作为Sedorner的Brew Way上面写道:
根据技术实验室完全删除MySQL
ps -ax | grep mysql
stop和
kill
任何MySQL进程sudo rm /usr/local/mysql
sudo rm -rf /usr/local/var/mysql
sudo rm -rf /usr/local/mysql*
sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
编辑
/etc/hostconfig
并删除行MYSQLCOM=-YES-
rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /private/var/db/receipts/*mysql*
尝试运行
mysql
,它应该不起作用Brew从此StackOverflow答案中为每个用户Sedorner安装MySQL
brew doctor
并修正任何错误brew remove mysql
brew cleanup
brew update
brew install mysql
unset TMPDIR
mysql_install_db --verbose --user=
whoami--basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
mysql.server start
运行Brew建议的命令,将MySQL添加到
launchctl
,以便它在启动时自动启动mysql
现在应该可以正常运行并按预期运行一帆风顺 .
有同样的问题 . 似乎设置说明或正在创建的初始表有问题 . 这就是我在我的机器上运行mysqld的方法 .
如果mysqld服务器已在Mac上运行,请先停止它:
launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
使用以下命令启动mysqld服务器,该命令允许任何人以完全权限登录 .
mysqld_safe --skip-grant-tables
然后运行
mysql -u root
,现在可以让您在没有密码的情况下成功登录 . 以下命令应重置所有root密码 .UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES;
现在,如果您终止mysqld_safe的运行副本并在没有skip-grant-tables选项的情况下再次启动它,您应该能够使用
mysql -u root -p
和您刚刚设置的新密码登录 .好吧我有同样的问题并解决了它 . 出于某种原因,当使用Homebrew安装mysql时,mysql_secure_installation脚本无法正常工作,所以我手动完成了 . On the CLI enter :
这应该让你进入mysql . 现在执行以下操作(取自mysql_secure_installation):
现在退出并返回到mysql:
mysql -u root -p
我刚才遇到了同样的问题 . 如果你
brew info mysql
并按照步骤看起来根密码应该是new-password
如果我没记错的话 . 我看到了你所看到的同样的事情 . This article对我帮助最大 .事实证明我没有为我创建任何帐户 . 当我在运行
mysqld_safe
后登录并且select * from user;
没有返回任何行 . 我打开MySQLWorkbench并运行mysqld_safe
并添加了一个root
帐户,其中包含我预期的所有权限 . 这对我来说效果很好 .如果已经安装了mysql
完全停止mysql .
mysql.server stop
< - 可能需要根据您的版本进行编辑ps -ef | grep mysql
< - 列出名称中包含mysql的进程kill [PID]
< - 通过PID终止进程删除文件 . 上面的说明很好 . 我要补充一下:
sudo find /. -name "*mysql*"
用你的判断,
rm -rf
这些文件 . 请注意,许多程序都有mysql驱动程序,您不想删除它们 . 例如,don 't delete stuff in a PHP install' s目录 . 在自己的mysql目录中删除东西 .安装
希望你有自制软件 . 如果没有,请下载它 .
我喜欢以root身份运行brew,但我不认为你必须这样做 . 编辑2018:您不能再以root身份运行brew
sudo brew update
sudo brew install cmake
< - 对mysql的依赖,很有用sudo brew install openssl
< - 对mysql的依赖,很有用sudo brew info mysql
< - 浏览一遍......它让您了解接下来会发生什么sudo brew install mysql --with-embedded; say done
< - 使用嵌入式服务器安装mysql . 告诉你什么时候完成(我的安装花了10分钟)之后
sudo chown -R mysql /usr/local/var/mysql/
< - 在我运行此命令之前,mysql对我不起作用sudo mysql.server start
< - 再一次,确切的语法可能会有所不同在mysql中创建用户(http://dev.mysql.com/doc/refman/5.7/en/create-user.html) . 请记住为root用户添加密码 .
brew info mysql
mysql.service启动
或者mysql -u root
我正在寻找一段时间的解决方案,但我无法解决我的问题 . 我在stackoverflow.com上尝试了几个解决方案,但没有这个帮助我 .
TL;DR
使用Brew安装后,MySQL服务器可能无法运行 . 如果您不希望MySQL作为后台服务运行,请尝试
brew services start mysql
或仅mysql.server start
.Full Story:
我刚刚在运行Sierra的新MacBook Pro上安装了MySQL(稳定版)5.7.17,并且在运行_580634时也遇到了错误:
说什么?
根据Brew的安装信息,
mysql_secure_installation
应该提示我......确保安装 . 我认为MySQL服务器可能没有正常运行 . 运行brew services start mysql
然后mysql_secure_installation
就像一个魅力 .尝试给予Grant权限mysql命令
当使用brew与最新版本的mysql和yosemite时,上述答案(或我在其他地方看到的任何答案中的任何一个)都没有为我工作 . 我最终通过brew安装了一个不同的mysql版本 .
通过说(例如)指定旧版本
为我工作 . 希望这有助于某人 . 这是一个令人沮丧的问题,我觉得我永远陷入困境 .
我尝试重新启动mysql后遇到了同样的问题 .
为方便起见,我在.profile中使用了以下两个别名
在停止mysql然后尝试重新启动后,我遇到了你遇到的问题 . 我查看了launchctl加载,它报告了“没有发现加载”错误 .
快速搜索后我发现了这个..
http://www.daveoncode.com/2013/02/01/solve-mac-osx-launchctl-nothing-found-to-load-error/
所以我更新了
mysql-start
别名,如下所示这解决了我的问题,可能对您有用 .
Mysql的"Base-Path"存储在
/etc/my.cnf
中,当您进行brew升级时不会更新 . 只需打开它并更改basedir值即可例如,改变这个:
指向新版本:
用以下命令重启mysql:
这是MySQL 5.7的更新