ITPub博客

首页 > 数据库 > MySQL > mysql报关于用户密码1045(28000),几种处理方法

mysql报关于用户密码1045(28000),几种处理方法

MySQL 作者:lovestanford 时间:2017-11-12 21:17:07 0 删除 编辑

--mysql5.6,安装好后进行登录出现
[root@mytest_db usr]# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

提示密码问题,再用命令修改,也会出现以下错误
[root@mytest_db usr]# mysqladmin -u root password 'petrel'
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

这个时候需要用这种方法进行处理
--重启mysql服务,采用mysqld_safe的方式进行
[root@mytest_db usr]# service mysql stop
Shutting down MySQL...[  OK  ]
[root@mytest_db usr]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
[1] 5043
启动后,就可以直接不用密码直接进入了,这个时候重新设置密码
[root@mytest_db usr]# mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.19 MySQL Community Server (GPL)

Copyright (c) 2000, 2014, 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> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set Password=PASSWORD('petrel') where user = 'root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye
[root@mytest_db usr]# service mysql restart
这个时候,再进行登录就没问题了

[root@mytest_db data]# mysql -uroot -ppetrel
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.19

Copyright (c) 2000, 2014, 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> use mysql;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
mysql> grant all privileges  on *.* to root@'localhost'   identified   by 'petrel';
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
mysql> set PASSWORD=PASSWORD('petrel');
Query OK, 0 rows affected (0.00 sec)

--出现mysql.user表里面用户为空时出现
ERROR 1045 (28000): Access denied for user
这个时候可以进行如下处理
删除这些为空的用户或者更新为其他用户名
删除user.user中值为NULL的,或更新NULL为其它值等
mysql> delete from user where user is NULL
Query OK, 1 rows affected (0.00 sec)
或者更新为其它值
mysql> update user set user='mytest' where user is NULL
Query OK, 1 rows affected (0.00 sec)

--如果mysql.user表里面没有可以访问的用户,也会出现
MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)
这个时候,我们就要采用如下步骤进行
[root@mytest_db usr]# service mysql stop
Shutting down MySQL...[  OK  ]
[root@mytest_db usr]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
[root@mytest_db usr]# mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.19 MySQL Community Server (GPL)

Copyright (c) 2000, 2014, 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> select * from user;
发现没有用户
mysql> INSERT INTO user(host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'username', PASSWORD(‘yourpassword'), 'Y', 'Y','Y');
Query OK, 1 row affected, 3 warnings (0.00 sec)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21754115/viewspace-2147149/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2012-09-27

  • 博文量
    213
  • 访问量
    974557