@cdmonkey
2015-06-04T10:02:21.000000Z
字数 1790
阅读 989
数据库
作为Mysql数据库管理员管理用户账户,是一件很重要的事,指出哪个用户可以连接服务器,从哪里连接,连接后能够做什么。MySQL从3.22.11开始引入两个语句来做这件事,GRANT语句创建MySQL用户并指定其权限,而REVOKE语句删除权限。CREATE和REVOKE语句影响4个表:
| 表 | 说明 |
|---|---|
user |
能连接服务器的用户以及他们拥有的任何全局权限。 |
db |
数据库级权限。 |
tables_priv |
表级权限。 |
columns_priv |
列级权限。 |
mysql> select user,host from mysql.user;#查看MySQL数据库中的user表(授权表)里的user和host字段:+------+-----------+| user | host |+------+-----------+| root | 127.0.0.1 || root | ::1 || | localhost || root | localhost || | www || root | www |+------+-----------+
如果仔细查看MYSQL的权限表,会发现存在主机名为localhost的记录,也存在主机名为127.0.0.1 的记录,那这两着分别在什么时候会用到呢?虽然上述两者都表示当前主机,但是却代表着不同的登录方式:
如果通过TCP/IP方式进来的连接,MySQL服务器接收到的来源主机是 127.0.0.1。
如果是UNIX socket方式,MySQL服务器接收到的来源主机是localhost。
//删除掉用户为空的记录:mysql> delete from mysql.user where user='';mysql> select user,host from mysql.user;+------+-----------+| user | host |+------+-----------+| root | 127.0.0.1 || root | ::1 || root | localhost || root | www |+------+-----------+mysql> delete from mysql.user where host='www';mysql> select user,host from mysql.user;+------+-----------+| user | host |+------+-----------+| root | 127.0.0.1 || root | ::1 || root | localhost |+------+-----------+mysql> delete from mysql.user where host='::1';mysql> select user,host from mysql.user;+------+-----------+| user | host |+------+-----------+| root | 127.0.0.1 || root | localhost |+------+-----------+mysql> drop database test; //删除test库mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema |+--------------------+
//或者干脆全部删除,添加额外管理员:mysql> delete from mysql.user;//添加用户“system”作为系统管理员:mysql> grant all privileges on *.* to system@'localhost' identified by 'oldboy123' with grant option;
创建管理员密码:
[root@ServerF ~]# mysqladmin -u root password 'oldboy123'//然后使用交互模式登录:[root@ServerF ~]# mysql -u root -pEnter password://如果是非交互式的登录:[root@ServerF ~]# mysql -u root -poldboy123
更换字符集:
[root@www ~]# cat /etc/sysconfig/i18n#LANG="zh_CN.GB18030"LANG="zh_CN.UTF-8"
