最近在做mysql 多实例的时候,采用不同的方式登录mysql数据库,发现mysql -uroot -p -h 127.0.0.1 -P3308 ,登录时居然不要密码就可以登录,吓得我一身汗,经过检查终于找到原因记录下来,给小白们参考。
[root@mysql ~]# mysql -uroot -p -S /data/3308/mysql.sock
Enter password: #需要输入密码
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 23
Server version: 5.5.32-log 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 current_user();
+----------------+
| current_user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
*******************************************************************
[root@mysql ~]# mysql -uroot -p -h 127.0.0.1 -P3308
Enter password: #不需要输入密码,直接回车登录
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 24
Server version: 5.5.32-log 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>
mysql> select current_user();
+----------------+
| current_user() |
+----------------+
| root@127.0.0.1 |
+----------------+
1 row in set (0.00 sec)
不要密码登录原因:
登录数据库查看密码
mysql> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *FE28814B4A8B3309DAC6ED7D3237ADED6DA1E515 |
| root | mysql | |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| | mysql | |
| tom | % | *71FF744436C7EA1B954F6276121DB5D2BF68FC07 |
| tom1 | % | *36B46F2410B8A8E6E1DC6952C5C26929FDC07421 |
| tom2 | % | *FEF6FE64F2588DC11E69F0DC5A704E231D1AAEFC |
| tom | localhost | *71FF744436C7EA1B954F6276121DB5D2BF68FC07 |
+------+-----------+-------------------------------------------+
10 rows in set (0.00 sec)
总结:第一种方式登录后,用户是 root@localhost,第二种方式登录后,用户是root@127.0.0.1 查看数据库,发现root@localhost没有设置密码,所以使用第一种方式登录不需要输入密码。