MySQL数据库系统的维护工作主要包括用户权限的设置、数据库的备份与恢复,本篇博客将对进行这些操作进行讲解
数据库的用户授权
MySQL数据库的root用户账号拥有对所有库、表的全部权限,频繁使用root账号会给数据库服务器带来一定的风险。在工作中,通常会建立一些低权限的用户,只负责对一部分库、表的管理和维护操作,甚至对查询、修改、删除等各种操作做进一步的细化限制,从而将数据库的风险降至最低
1. 授予权限
grant语句:专门用来设置数据库的访问权限。当指定的用户名不存在时,grant语句会创建新的用户,否则,将修改用户的信息,语句格式如下:
1
|
grant 权限列表 on 库名.表名 to 用户名@来源地址 [ identified by
'密码'
]
|
其中,各字段含义如下:
* 权限列表:如“select,insert,update”,使用逗号分隔,使用all表示所有权限
* 库名.表名:库和表的名称,可使用通配符“*”,例如,“yang.*”表示授权对象为yang库中的所有表
* 用户名@来源地址:来源地址可以是域名、IP地址,还可以使用通配符“%”,表示某个区域或网段,如“%.ysf.com”、“192.168.1.%”等
* identified by:用户设置用户的密码,若省略,则用户的密码为空
使用grant语句授权的用户记录,会保存到mysql库中的user、db、host、tables_priv等相关表中,无须刷新即可生效
2. 查看权限
show grants语句:专门用来查看数据库用户的授权信息,通过for子句可指定查看的用户对象,语句格式如下:
1
|
show grants
for
用户名@来源地址
|
3. 撤销权限
revoke语句:用户撤销指定用户的数据库权限,撤销权限后的用户仍可连接到MySQL服务器,但禁止执行对应的数据库操作,语句格式如下:
1
|
revoke 权限列表 on 数据库名.表名 from 用户名@来源地址
|
若希望了解更多的MySQL语句的知识,可参阅MySQL的在线参考手册
数据库的备份与恢复
MySQL的备份可以采用多种方式
方式1:直接打包数据库文件夹/usr/local/mysql/data
方式2:使用专用的导出工具,如MySQL自带的倾倒工具mysqldump
(1)备份数据库
命令格式如下:
1
2
3
|
[root@localhost ~]
# mysqldump [选项] 库名 [表名1] [表名2] … > /备份路径/备份文件名 //备份指定库中的部分表
[root@localhost ~]
# mysqldump [选项] --databases 库名1 [库名2] … > /备份路径/备份文件名 //备份一个或多个库(包含其中所有表)
[root@localhost ~]
# mysqldump [选项] --all-databases > /备份路径/备份文件名 //备份MySQL服务器中所有的库
|
(2)恢复数据库
命令格式如下:
1
|
[root@localhost ~]
# mysql [选项] [库名] [表名] < /备份路径/备份文件名
|
当备份文件只包含表的备份时,导入时,必须指定库名,且库必须存在
当备份文件包含完整的库信息时,导入时,无须指定库名