Mysql root访问被拒绝

时间:2013-11-12 22:27:21

标签: mysql database unix terminal user-permissions

我好像忘记了我的密码,以终端(mac)的MySql root用户身份登录。我已经在 http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html 上查阅了mysql文档,但这对我来说似乎不起作用。我接下来可能做什么?

user$ mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

以下是我目前可用的数据库。 MySql数据库似乎没有出现在那里。这是为什么?

user$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.6.13 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
+--------------------+

1 个答案:

答案 0 :(得分:1)

我个人从来没有能够在重置时使用ini或文本文件方法来发送其他命令。

C.5.4.1.3下的通用指令。重置root密码:来自该超链接的通用指令通常是我找到工作的方式。

要更改root密码:

  1. 如果当前正在运行,请停止mysqld
  2. 使用mysqld命令行选项在“安全模式”中启动--skip-grant-tables。 (注意:建议尽可能使用--skip-networking选项,以避免在执行此操作时打开对数据库服务器的访问权限到网络/ Internet的其余部分! )

    这将启动mysql守护进程。

  3. 打开首选的mysql客户端,以root身份登录,无需密码或在终端输入mysql -u root。您不需要密码,因为已跳过授权表。

    您现在应该能够登录到mysql服务器并显示MOTD /欢迎消息。

  4. 运行这些SQL命令(注意:记住尾随的分号!)

    use mysql;
    
    update user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;
    
  5. 退出mysql客户端

  6. 停止mysqld守护程序 - 重要!如果您没有停止守护程序,那么数据库服务器将继续以打开的权限运行!!

    < / LI>
  7. 在正常情况下重启mysqld守护程序。

  8. 回答你的问题:

      

    以下是我目前可用的数据库。 MySql数据库似乎没有出现在那里。这是为什么?

    除非您具有全局SHOW DATABASES权限,否则您只能看到具有某种权限的数据库。

    请参阅:MySQL SHOW DATABASES Documentation