[关闭]
@cdmonkey 2015-06-04T10:02:21.000000Z 字数 1790 阅读 779

MySQL用户管理

数据库


作为Mysql数据库管理员管理用户账户,是一件很重要的事,指出哪个用户可以连接服务器,从哪里连接,连接后能够做什么。MySQL从3.22.11开始引入两个语句来做这件事,GRANT语句创建MySQL用户并指定其权限,而REVOKE语句删除权限。CREATE和REVOKE语句影响4个表:

说明
user 能连接服务器的用户以及他们拥有的任何全局权限。
db 数据库级权限。
tables_priv 表级权限。
columns_priv 列级权限。
  1. mysql> select user,host from mysql.user;
  2. #查看MySQL数据库中的user表(授权表)里的user和host字段:
  3. +------+-----------+
  4. | user | host |
  5. +------+-----------+
  6. | root | 127.0.0.1 |
  7. | root | ::1 |
  8. | | localhost |
  9. | root | localhost |
  10. | | www |
  11. | root | www |
  12. +------+-----------+

如果仔细查看MYSQL的权限表,会发现存在主机名为localhost的记录,也存在主机名为127.0.0.1 的记录,那这两着分别在什么时候会用到呢?虽然上述两者都表示当前主机,但是却代表着不同的登录方式:

如果通过TCP/IP方式进来的连接,MySQL服务器接收到的来源主机是 127.0.0.1。
如果是UNIX socket方式,MySQL服务器接收到的来源主机是localhost。

  1. //删除掉用户为空的记录:
  2. mysql> delete from mysql.user where user='';
  3. mysql> select user,host from mysql.user;
  4. +------+-----------+
  5. | user | host |
  6. +------+-----------+
  7. | root | 127.0.0.1 |
  8. | root | ::1 |
  9. | root | localhost |
  10. | root | www |
  11. +------+-----------+
  12. mysql> delete from mysql.user where host='www';
  13. mysql> select user,host from mysql.user;
  14. +------+-----------+
  15. | user | host |
  16. +------+-----------+
  17. | root | 127.0.0.1 |
  18. | root | ::1 |
  19. | root | localhost |
  20. +------+-----------+
  21. mysql> delete from mysql.user where host='::1';
  22. mysql> select user,host from mysql.user;
  23. +------+-----------+
  24. | user | host |
  25. +------+-----------+
  26. | root | 127.0.0.1 |
  27. | root | localhost |
  28. +------+-----------+
  29. mysql> drop database test; //删除test库
  30. mysql> show databases;
  31. +--------------------+
  32. | Database |
  33. +--------------------+
  34. | information_schema |
  35. | mysql |
  36. | performance_schema |
  37. +--------------------+
  1. //或者干脆全部删除,添加额外管理员:
  2. mysql> delete from mysql.user;
  3. //添加用户“system”作为系统管理员:
  4. mysql> grant all privileges on *.* to system@'localhost' identified by 'oldboy123' with grant option;

创建管理员密码:

  1. [root@ServerF ~]# mysqladmin -u root password 'oldboy123'
  2. //然后使用交互模式登录:
  3. [root@ServerF ~]# mysql -u root -p
  4. Enter password:
  5. //如果是非交互式的登录:
  6. [root@ServerF ~]# mysql -u root -poldboy123

更换字符集:

  1. [root@www ~]# cat /etc/sysconfig/i18n
  2. #LANG="zh_CN.GB18030"
  3. LANG="zh_CN.UTF-8"
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注