出于某种原因,MySQL停止为root提供访问权限 . 使用Homebrew卸载并重新安装 . 新鲜的安装,新鲜的 table ,但当我进入
mysql -u root -p
我收到此错误:
用户'root'@'localhost'拒绝访问(使用密码:NO)
我重新安装了MySQL五次,但仍然要求输入密码 . 我该如何解决?
只需运行此命令(其中NEWPASS是您的密码):
$(brew --prefix mysql)/bin/mysqladmin -u root password NEWPASS
我有同样的错误并以这种方式修复它 .
几天前我遇到了同样的问题 . 当您通过 homebrew 安装 mysql 并运行启动 mysql 守护程序的初始化脚本( mysql_install_db ) before 时,会发生这种情况 .
homebrew
mysql
mysql_install_db
要修复它,您可以删除 mysql 数据文件,重新启动服务并运行初始化脚本 then :
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
如果您无意中设置并忘记了root密码,并且您不想擦除所有数据库并重新开始,因为您很懒,并且忘记了备份解决方案,并且您使用的是最新的Homebrew安装(2013年冬季),以下是重置MySQL密码的步骤 .
Stop the currently running MySQL instance
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Now start mysql by hand skipping the grant tables and networking
$(brew --prefix mysql)/bin/mysqld_safe --skip-grant-tables --skip-networking
请注意,如果您运行 echo $(brew --prefix mysql) 并且它在bash中没有响应 "/usr/local/opt/mysql" ,则需要相应地调整路径 .
完成此操作后,您现在应该有一个正在运行的,未受保护的MySQL实例 .
Log in and set the password
mysql -u root
在提示符下,输入以下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 root密码 . 给自己倒一杯咖啡,并获得备用解决方案!
通过home brew安装mysql后出现此错误 .
所以首先删除安装 . 然后通过Homebrew重新安装
brew update brew doctor brew install mysql
然后重启mysql服务
mysql.server restart
然后运行此命令以设置新的root密码 .
mysql_secure_installation
最后它会要求重新加载权限 . 说是的 . 然后再次登录mysql . 并使用您设置的新密码 .
这些都不适合我 . 我想我已经在我的电脑上的某个地方安装了mysql,所以在那里设置了密码 . 花了几个小时尝试每个解决方案后,这对我有用:
$ brew services stop mysql $ pkill mysqld $ rm -rf /usr/local/var/mysql/ # NOTE: this will delete your existing database!!! $ brew postinstall mysql $ brew services restart mysql $ mysql -uroot
全部归功于@Ghrua
如果你看一下在没有 -p 的情况下运行 mysqladmin -u root 的建议,我实际上是显而易见的 .
-p
mysqladmin -u root
没有密码 .
Brew只用root用户设置mysql,根本没有密码 . 我猜这有道理,但安装后的警告根本没有提到它 .
在终端中运行这些线路对我和其他几个遇到同样问题的人来说都是一招 . brew成功安装mysql后,终端中列出了这些说明 .
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的密码 .
YOURPASSWORD
检查您的homedir中没有隐藏.my.cnf . 那是我的问题 .
通过brew安装mysql时的默认密码是root试试这个,它对我有用
mysql -uroot -proot
1号航站楼:
$ mysql_safe
2号航站楼:
$ mysql -u root mysql> UPDATE mysql.user SET Password=PASSWORD('new-password') WHERE User='root'; mysql> FLUSH PRIVILEGES; mysql> quit
10 回答
只需运行此命令(其中NEWPASS是您的密码):
我有同样的错误并以这种方式修复它 .
几天前我遇到了同样的问题 . 当您通过
homebrew
安装mysql
并运行启动mysql
守护程序的初始化脚本(mysql_install_db
) before 时,会发生这种情况 .要修复它,您可以删除
mysql
数据文件,重新启动服务并运行初始化脚本 then :如果您无意中设置并忘记了root密码,并且您不想擦除所有数据库并重新开始,因为您很懒,并且忘记了备份解决方案,并且您使用的是最新的Homebrew安装(2013年冬季),以下是重置MySQL密码的步骤 .
Stop the currently running MySQL instance
Now start mysql by hand skipping the grant tables and networking
请注意,如果您运行 echo $(brew --prefix mysql) 并且它在bash中没有响应 "/usr/local/opt/mysql" ,则需要相应地调整路径 .
完成此操作后,您现在应该有一个正在运行的,未受保护的MySQL实例 .
Log in and set the password
在提示符下,输入以下MySQL命令为受影响的用户设置新密码 .
如果一切都按计划进行,应该说:
退出MySQL提示符 .
停止服务器:
现在,让我们放回启动守护程序,这样我们就可以再次准备好MySQL:
恭喜 . 你刚刚重置了你的mysql root密码 . 给自己倒一杯咖啡,并获得备用解决方案!
通过home brew安装mysql后出现此错误 .
所以首先删除安装 . 然后通过Homebrew重新安装
然后重启mysql服务
然后运行此命令以设置新的root密码 .
最后它会要求重新加载权限 . 说是的 . 然后再次登录mysql . 并使用您设置的新密码 .
这些都不适合我 . 我想我已经在我的电脑上的某个地方安装了mysql,所以在那里设置了密码 . 花了几个小时尝试每个解决方案后,这对我有用:
全部归功于@Ghrua
如果你看一下在没有
-p
的情况下运行mysqladmin -u root
的建议,我实际上是显而易见的 .没有密码 .
Brew只用root用户设置mysql,根本没有密码 . 我猜这有道理,但安装后的警告根本没有提到它 .
在终端中运行这些线路对我和其他几个遇到同样问题的人来说都是一招 . brew成功安装mysql后,终端中列出了这些说明 .
其中
YOURPASSWORD
是root的密码 .检查您的homedir中没有隐藏.my.cnf . 那是我的问题 .
通过brew安装mysql时的默认密码是root试试这个,它对我有用
mysql -uroot -proot
1号航站楼:
2号航站楼: