MacOSX homebrew mysql root密码
出于某种原因,MySQL停止了对root的访问。 卸载并重新安装Homebrew。 新鲜安装,新鲜的桌子,但是当我进入
mysql -u root -p
我得到这个错误:
访问拒绝用户“root”@“localhost”(使用密码:否)
我重新安装了MySQL五次,但仍然要求input密码。 我该如何解决?
前几天我也有同样的问题。 当你通过homebrew
安装mysql
并在启动mysql
守护进程之前运行初始化脚本( mysql_install_db
)时,会发生这种情况。
要解决这个问题,你可以删除mysql
数据文件,重新启动服务, 然后运行初始化脚本:
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist rm -r /usr/local/var/mysql/ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist unset TMPDIR mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
只要运行这个命令(其中NEWPASS是你的密码):
$(brew --prefix mysql)/bin/mysqladmin -u root password NEWPASS
我有同样的错误,并修复这种方式。
如果您无意中设置并忘记了root密码,并且您不想擦除所有的数据库并重新开始,因为您很懒,并忘记备份解决scheme,而且您正在使用相当新的Homebrew安装(2013年冬季),这里是重置MySQL密码的步骤。
停止当前正在运行的MySQL实例
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
现在手动跳过授权表和networking来启动mysql
$(brew --prefix mysql)/bin/mysqld_safe --skip-grant-tables --skip-networking
请注意,如果运行echo $(brew –prefix mysql),并且它在bash中不作为“/ usr / local / opt / mysql”响应,则需要相应地调整path。
一旦你完成了,你现在应该有一个运行,不受保护的MySQL实例。
login并设置密码
mysql -u root
在提示符处,input以下MySQL命令为受影响的用户设置一个新密码。
mysql> update mysql.user set password=PASSWORD('new_password_here') WHERE user='root';
如果所有的计划都应该说:
Query OK, 1 row affected (0.02 sec) Rows matched: 4 Changed: 1 Warnings: 0
退出MySQL提示符。
mysql> exit Bye
停止服务器:
mysqladmin -u root shutdown
现在,让我们放回启动守护进程,让我们有我们的MySQL在准备:
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
恭喜。 你刚刚重置你的MySQL根密码。 给自己倒一杯咖啡,并获得备份解决scheme!
通过home brew安装mysql后出现这个错误。
所以首先删除安装。 然后通过自制软件重新安装
brew update brew doctor brew install mysql
然后重新启动mysql服务
mysql.server restart
然后运行这个命令来设置你的新的root密码。
mysql_secure_installation
最后它会要求重新加载权限。 说是的。 然后再次login到MySQL。 并使用您设置的新密码。
mysql -u root -p
我刚刚注意到这里的大部分答案都有共同之处,并在我全新的安装中得到证实。 实际上,如果你看看没有-p
情况下运行mysqladmin -u root
的build议,
没有密码。
Brew只使用root用户而不设置密码。 我想这是有道理的,但是安装后的警告根本没有提到它。
在terminal上运行这些线对我和其他几个谁有同样的问题的伎俩。 在brew安装mysql成功之后,这些指令在terminal中列出。
mkdir -p ~/Library/LaunchAgents cp /usr/local/Cellar/mysql/5.5.25a/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist /usr/local/Cellar/mysql/5.5.25a/bin/mysqladmin -u root password 'YOURPASSWORD'
其中YOURPASSWORD
是root的密码。
1号航站楼:
$ mysql_safe
2号航站楼:
$ mysql -u root mysql> UPDATE mysql.user SET Password=PASSWORD('new-password') WHERE User='root'; mysql> FLUSH PRIVILEGES; mysql> quit
检查你没有.my.cnf藏在你的homedir中。 那是我的问题。