首页 文章

MacOSX自制mysql root密码

提问于
浏览
72

出于某种原因,MySQL停止为root提供访问权限 . 使用Homebrew卸载并重新安装 . 新鲜的安装,新鲜的 table ,但当我进入

mysql -u root -p

我收到此错误:

用户'root'@'localhost'拒绝访问(使用密码:NO)

我重新安装了MySQL五次,但仍然要求输入密码 . 我该如何解决?

10 回答

  • 1

    只需运行此命令(其中NEWPASS是您的密码):

    $(brew --prefix mysql)/bin/mysqladmin -u root password NEWPASS
    

    我有同样的错误并以这种方式修复它 .

  • 53

    几天前我遇到了同样的问题 . 当您通过 homebrew 安装 mysql 并运行启动 mysql 守护程序的初始化脚本( mysql_install_dbbefore 时,会发生这种情况 .

    要修复它,您可以删除 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
    
  • 0

    如果您无意中设置并忘记了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密码 . 给自己倒一杯咖啡,并获得备用解决方案!

  • 74

    通过home brew安装mysql后出现此错误 .

    所以首先删除安装 . 然后通过Homebrew重新安装

    brew update
    brew doctor
    brew install mysql
    

    然后重启mysql服务

    mysql.server restart
    

    然后运行此命令以设置新的root密码 .

    mysql_secure_installation
    

    最后它会要求重新加载权限 . 说是的 . 然后再次登录mysql . 并使用您设置的新密码 .

    mysql -u root -p
    
  • 21

    这些都不适合我 . 我想我已经在我的电脑上的某个地方安装了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

  • 0

    如果你看一下在没有 -p 的情况下运行 mysqladmin -u root 的建议,我实际上是显而易见的 .

    没有密码 .

    Brew只用root用户设置mysql,根本没有密码 . 我猜这有道理,但安装后的警告根本没有提到它 .

  • 60

    在终端中运行这些线路对我和其他几个遇到同样问题的人来说都是一招 . 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的密码 .

  • 35

    检查您的homedir中没有隐藏.my.cnf . 那是我的问题 .

  • 4

    通过brew安装mysql时的默认密码是root试试这个,它对我有用

    mysql -uroot -proot

  • 1

    1号航站楼:

    $ mysql_safe
    

    2号航站楼:

    $ mysql -u root
    mysql> UPDATE mysql.user SET Password=PASSWORD('new-password') WHERE User='root';
    mysql> FLUSH PRIVILEGES;
    mysql> quit
    

相关问题