MYSQL 匿名帐号的负担

 
系统环境:
Ubuntu 
8.04
MYSQL 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用户全部作为匿名用户对待了。



MySQL匿名代码块是指在MySQL中使用匿名存储过程或匿名函数来执行一系列SQL语句的代码块。匿名代码块可以使用PL/SQL语言来编写,通过增加了过程性控制结构有效地执行SQL语句。 在MySQL中,可以使用匿名代码块来执行一些简单的逻辑操作,如条件判断、循环和变量赋值等。匿名代码块可以通过存储过程或函数的方式进行调用,也可以直接在MySQL的命令行或客户端工具中执行。 使用匿名代码块可以提高代码的封装性和可读性,同时也可以减少与数据库的交互次数,提高执行效率。 例如,以下是一个简单的MySQL匿名代码块的示例: ``` BEGIN DECLARE total INT; SET total = 0; SELECT COUNT(*) INTO total FROM users; IF total > 0 THEN SELECT 'There are ' + total + ' users in the database.'; ELSE SELECT 'No users found in the database.'; END IF; END; ``` 在这个示例中,我们声明了一个名为total的变量,并将其初始化为0。然后,我们使用SELECT语句查询用户表中的记录数,并将结果存储到total变量中。 接下来,我们使用条件判断语句IF来判断total的值。如果total大于0,则输出包含用户数量的消息;否则,输出未找到用户的消息。 通过使用匿名代码块,我们可以在MySQL中执行一系列的SQL语句,并根据不同的条件进行逻辑处理。这种方式可以简化代码逻辑,并使代码更加可读和可维护。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值