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中。 那是我的问题。