系统环境:Ubuntu 8.04MYSQL Server version: 5.0.51a-3ubuntu5 (Ubuntu) 以上是我的系统环境,随着工程开发的需要我们一般需要在mysql中添加一些非root帐户(testmysql)以方便自己的开发和测试。不过无意中我们发现了一个问题 ERROR 1045: Access denied for user: 'testmysql@localhost' (Using password: YES) ,新用户添加之后无法用预设的密码登录,而使用空密码登录所设定的帐户是可以的,这是为什么呢?首先root帐户是可以登录的,那我们就使用root登录吧,然后让我们打开user表(所在位置:mysql --> user): mysql> use mysql;mysql> select Host,User from user;+------------+------------------+| Host | User |+------------+------------------+| % | | | % | testmysql | | 127.0.0.1 | root | | localhost | debian-sys-maint | | localhost | root | | wpc-laptop | root | +------------+------------------+6 rows in set (0.00 sec) 原来如此我们好像有一个匿名帐户,因为这个帐户密码是空,会不会和这个帐户有关呢?我一向比较大胆,那就不管那么多了,直接干掉它。 mysql> delete from user where User='';Query OK, 1 row affected (0.00 sec)mysql> select Host,User from user;+------------+------------------+| Host | User |+------------+------------------+| % | testmysql | | 127.0.0.1 | root | | localhost | debian-sys-maint | | localhost | root | | wpc-laptop | root | +------------+------------------+5 rows in set (0.00 sec) 不错,好像没有了。那我们再去实验一下,终于可以登录了,不错不错。实验成功,那到底是为什么呢?我去网上搜索了一下,没有找到很有用的东西。只能臆断了,估计是系统将非root用户全部作为匿名用户对待了。