【问题标题】:Avoid 'Access denied for user 'root'@'localhost' (using password: NO)'避免“用户'root'@'localhost'的访问被拒绝(使用密码:否)'
【发布时间】:2015-11-13 00:50:39
【问题描述】:

我怎样才能安装mysql并能够使用它?

我试过了:

$ brew install mysql
==> Downloading https://homebrew.bintray.com/bottles/mysql-5.7.9.yosemite.bottle.tar.gz
Already downloaded: /Library/Caches/Homebrew/mysql-5.7.9.yosemite.bottle.tar.gz
==> Pouring mysql-5.7.9.yosemite.bottle.tar.gz
==> Caveats
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.

To connect:
    mysql -uroot

To have launchd start mysql at login:
  ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Or, if you don't want/need launchctl, you can just run:
  mysql.server start
==> Summary
????  /usr/local/Cellar/mysql/5.7.9: 12629 files, 464M
$ mysql -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
$ mysql.server start
Starting MySQL
 SUCCESS! 
$ mysql -uroot
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
$ 

【问题讨论】:

    标签: mysql installation


    【解决方案1】:

    对我来说,我的计算机上已经有 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

    【讨论】:

      【解决方案2】:

      我刚遇到同样的问题,这就是我解决它的方法(但只有在你的数据库中没有数据时才尝试这个!!):

      launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
      rm -rf /usr/local/var/mysql
      mysqld --initialize
      

      initialize 方法会创建数据目录,以及一个具有临时密码的 root 用户,请务必复制此密码,然后登录并更改密码。

      【讨论】:

      • 这个解决方案对我有用。我遇到了同样的问题:通过 Homebrew 安装了 MySQL,无法通过 root 访问它,也没有密码。运行上述三行,然后通过mysql -uroot -p 重新连接并使用之前通过mysqld 命令吐出的密码后,我进入了。最后一步是在mysqld 中将密码重置为空白: ALTER USER 'root'@'localhost' IDENTIFIED BY '';
      【解决方案3】:

      在 CLI 中尝试:

      mysql -uroot -p
      

      您需要指定此用户有密码。

      【讨论】:

      • 我这样做了,但我不知道要使用的密码。 $ mysql -uroot -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
      • 你需要MySQL的root密码
      【解决方案4】:

      使用mysqld --initialize 为我工作。我只需要从下面的输出中剪切并粘贴密码。

      [Note] A temporary password is generated for root@localhost: ?(A+3F48ed.Y

      【讨论】:

        【解决方案5】:

        尝试使用这个命令:

        sudo mysql -u root -p
        

        然后输入密码:*******

        【讨论】:

          猜你喜欢
          • 2016-12-27
          • 2012-06-17
          • 1970-01-01
          • 2017-07-10
          • 2014-06-06
          • 2017-12-20
          相关资源
          最近更新 更多