CentOS安装mysql之后,之前设置了密码,但输入mysql -u -p后,会直接进入mysql,而输入mysql -uroot -p,则需要输入密码,这是为什么呢?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | [root@hadoop01 ~]# mysql -u -p Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 11 Server version: 5.1.73 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> quit Bye [root@hadoop01 ~]# mysql -uroot -p Enter password : Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 12 Server version: 5.1.73 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输入:
select * from mysql.user where user=”;
mysql> select * from mysql.user where user=”;
1 |
查询有结果,然后进行下一步。
use mysql;
delete from user where user = ”;
1 2 3 4 5 6 7 | 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> delete from user where user = '' ; Query OK, 2 rows affected (0.00 sec) |
删除了多余的空白账户, 然后进行下一步。
flush privileges;
1 2 | mysql> flush privileges ; Query OK, 0 rows affected (0.00 sec) |
重载一次权限表,最后用
service mysqld restart
1 2 3 | [root@hadoop01 ~]# service mysqld restart Stopping mysqld: [ OK ] Starting mysqld: [ OK ] |
重启mysql服务,问题得到解决,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | [root@hadoop01 ~]# mysql -u -p ERROR 1045 (28000): Access denied for user '-p' @ 'localhost' (using password : NO ) [root@hadoop01 ~]# mysql -uroot -p Enter password : Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.1.73 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> quit; Bye |
注意:
1、一定要记住重启mysql服务,否则不会生效。
2、msyql的用户表在mysql数据库中的user表中,主要字段有host,user,password等,作为mysql用的管理的主要表。