1. 用户管理
在MySQL中,要想管理用户,首先必须要登录到MySQL服务器。登录时需要提供用户名和密码,只有用户名为“root”、密码正确的用户才能成功登录。
一旦登录成功,就可以对MySQL的用户进行管理,包括创建用户、删除用户、修改用户权限等。
1.1 创建用户
创建用户的语法如下:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
其中,'username'为要创建的用户名,'host'为用户所在的主机,可以指定为本地或远程主机,如果指定为'localhost'或'127.0.0.1',表示只允许在该主机上登录,如果指定为'%',则允许在任何主机上登录。'password'为用户密码,必须使用单引号括起来。
例如,创建一个名为'john',密码为'123456',只允许在本地登录的用户,可以使用以下命令:
CREATE USER 'john'@'localhost' IDENTIFIED BY '123456';
创建用户后,用户还没有任何权限,需要授权才能访问数据库。
1.2 删除用户
删除用户的语法如下:
DROP USER 'username'@'host';
其中,'username'和'host'与创建用户时相同。
例如,删除名为'john',只允许在本地登录的用户,可以使用以下命令:
DROP USER 'john'@'localhost';
2. 用户权限
MySQL中的权限分为全局权限和数据库权限两种。全局权限控制用户对整个MySQL服务器的访问,数据库权限控制用户对某个数据库的访问。
2.1 授权
授权的语法如下:
GRANT PRIVILEGE ON database.table TO 'username'@'host';
其中,'PRIVILEGE'为要授予的权限,可以指定为'ALL'表示所有权限,也可以指定为'SELECT'、'INSERT'、'UPDATE'、'DELETE'等单个权限。'database'和'table'分别为要授权的数据库和表,如果要授权所有表,可以使用'*'通配符。'username'和'host'与创建用户时相同。
例如,授予名为'john',只允许在本地登录的用户对数据库'mydb'的所有表拥有所有权限,可以使用以下命令:
GRANT ALL PRIVILEGES ON mydb.* TO 'john'@'localhost';
2.2 撤销权限
撤销权限的语法如下:
REVOKE PRIVILEGE ON database.table FROM 'username'@'host';
其中,'PRIVILEGE'、'database'、'table'、'username'和'host'与授权时相同。
例如,撤销名为'john',只允许在本地登录的用户对数据库'mydb'的所有表拥有的所有权限,可以使用以下命令:
REVOKE ALL PRIVILEGES ON mydb.* FROM 'john'@'localhost';
3. 设置
MySQL的设置可以通过修改配置文件或使用SET命令来改变。修改配置文件需要重启MySQL服务器才能生效,而使用SET命令可以即时生效。
3.1 修改配置文件
MySQL的配置文件通常命名为my.cnf或my.ini,可以在MySQL安装目录下找到。在配置文件中,以'#'开头的行表示注释,可以用于说明配置的作用。
例如,要修改MySQL默认编码为UTF-8,可以找到配置文件中的如下行:
#character-set-server=latin1
将其修改为:
character-set-server=utf8
然后重启MySQL服务器即可生效。
3.2 使用SET命令
使用SET命令可以即时修改MySQL的配置,但是修改的配置只对当前会话有效,会话结束后,配置会恢复为原来的值。
例如,要将MySQL默认编码改为UTF-8,可以使用以下命令:
SET character_set_server=utf8;
这样,当前会话中的MySQL默认编码就变为了UTF-8。
总结
MySQL的用户管理和权限设置是数据库管理的重要组成部分,掌握这些知识可以更好地保护数据库的安全性。同时,MySQL的设置也是数据库调优的重要手段,通过修改配置可以提高MySQL的性能和稳定性。