与权限相关的表由于经常需要用到,所以mysql直接将这些表在mysql启动时写到了内存中,避免每次验证权限时再从磁盘写数据。
当以下条件发生时发refresh权限表信息到内存:
1.对帐户的更改时,如create user ,grant,revoke, set password
2.另外可以手动的将权限表refresh到内存,通过命令:mysqladmin flush-privileges或mysqladmin reload
我们可以用两种方法创建MySQL帐户:
1 create user语句
2 通过使用GRANT语句
mysql> GRANT ... -> ON *.* -> TO 'myname'@'%.mydomain.com' -> IDENTIFIED BY 'mypass'; 3 直接操作MySQL的数据表,这种方法需要FLUSH PRIVILEGES让用户信息refresh到内存中。
mysql> INSERT INTO user (Host,User,Password) -> VALUES('%','jeffrey','biscuit'); mysql> FLUSH PRIVILEGES;
和oracle不一样,mysql修改帐户名比较简单,直接用rename user就行了。
另外可以建立一个匿名用户,任何用户任何主机都可以连到这台数据库,不过这样做比较危险。