我正在设置一个
MySQL服务器(实际上是Percona服务器,但这无关紧要)我正在为root用户设置密码.最后,我有这个:
mysql> select host, user, password from user;
+-----------+------------------+-------------------------------------------+
| host | user | password |
+-----------+------------------+-------------------------------------------+
| localhost | root | *huge string here, no kidding |
| localhost | debian-sys-maint | *another huge string here |
+-----------+------------------+-------------------------------------------+
2 rows in set (0.00 sec)
我认为这不应该允许root用户在没有密码的情况下连接.但是,如果我去命令行,我可以连接mysql -u root或mysql.如果我执行mysql -u root -p并按Enter键输入密码,则会收到ERROR 1045(28000):用户’root’@’localhost’拒绝访问(使用密码:NO).
任何人都可以向我解释如何确保用户只能连接密码?
编辑:如果相关,我用SET PASSWORD FOR’root’设置密码@’localhost’= PASSWORD(‘somethinghere’);
编辑:show grants的输出,它表示我使用了密码登录,但我没有.
mysql> show grants;
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*huge string here, no kidding' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)