数据库的高级管理
一:数据库的备份的操作
备份数据库而定命令用mysqldump
1:备份单个数据库
语法格式:
mysqldump -u username -h host -ppassword dbname[tbname1,tbname2] > filename.sql;
参数的意思:
username:用户名称
host:用户登录的主机名称
password:登陆密码,使用这个参数的时候,不能与-p这个选项有空格
dbname:需要备份的数据库的名称
tbname:数据库中要备份的数据表,如果没有这个参数的话,默认是备份完整的数据库,
> :将备份的内容写入到备份文件中去
filename.sql:备份文件名称,其中包含这个文件名称的路径
备份网上花店这个数据库,保存到d盘
二:用户的管理
创建用户,管理用户,删除用户
1:mysql中的用户
被分为2类,一个是root用户,另外一个是普通用户,root用户拥有所有的权限,普通用户只有被赋予的指定的权限
2:创建新用户
有三种创建用户的方式,create,grant,insert 这三种方式
最常见的是grant创建的方式
语法格式:
grant privileges on database.table to 'username'@'hostname' identified by 'passwd'
参数的介绍:
privileges:赋予用户的权限类型
database.table 用户的权限范围,就是只能在指定的数据库和表上进行操作
username:创建的用户名
hostname:主机名,本地localhost,远程的'%'
identified by :设置用户登录服务器的密码
password:使用明文密码
创建一个q7的用户,拥有所有的权限,对于网上书店这个数据库
grant all privileges on 网上书店.* to 'q7'@'localhost' identified by '000000';
查看数据库中的用户
select host,user from user;
3:删除普通用户
2种方式的删除
1)drop user 语句删除用户
语法格式:
drop user 'username'@'localhost','username1'@'localhost1';
可以删除单个用户和多个用户,并取消权限,使用时,必须具有drop user的权限
删除q8用户
drop user 'q8'@'localhost';
查看发现没有了q8这个用户
select host,user from user;
2)delete语句删除普通用户
delete from user where host='localhost' and 'user' = 'username'
使用后使用flush privileges 刷新一下用户的权限
删除q7用户
delete from user where host='localhost' and user='q7';
4:管理用户
就是对用户的名字和密码进行管理
1:修改用户的名字
格式:
rename user old_username@'host' to new)username@'host';
将q7用户名修改成q9
rename user 'q7'@'localhost' to 'q8'@'localhost';
2:修改用户密码
root用户可以修改自己的密码,也可以修改别人的密码,普通用户只能修改自己的密码
三种方式:
第一种使用update命令的方式更新这个user表中的记录
MariaDB [mysql]> update user set password='redhat' where user='q7';
三:权限的管理
权限的管理就是指定一些用户只能只某些事情
比如,一些用户只能最select的操作,
主要就是一下几个方面,权限的查询,权限的赋予,权限的收回
1:权限的查询
语法的格式:
show grants for 'username'@'llocalhost';
查看root用户的权限
MariaDB [mysql]> show grants for 'root'@'localhost';
with grant option就是拥有全部的权限
2:权限的赋予
with grant option就是可以将自己的权限授予别人
语法的格式:
grant priv_type on database.table to 'username'@'host' identified by 'password'
其中priv_type就是权限的类型,就是类似于select,insert这种的去下
比如授予q10用户只有select的权限,并且创建q10的用户
grant select on read_my.* to 'q10'@'localhost' identified by '000000';
还有就是修改当前存在的用户,比如q10用户,授予全部的权限
MariaDB [read_my]> grant all privileges on read_my.* to 'q10'@'localhost' identified by '000000';
使用mysql -u用户 -p密码 ,来验证这个权限是否被赋予了,或者查看这个用户的权限也可以,
MariaDB [read_my]> create table tt(tno int,cno int); Query OK, 0 rows affected (0.006 sec)
3:权限的收回(删除)
权限收回的话,这个用户的记录就也会被删除掉
1)收回指定权限
语法:
revoke priv_type on database.table from 'username'@'host';
收回q10的插入权限
MariaDB [read_my]> revoke insert on read_my.* from 'q10'@'localhost'; Query OK, 0 rows affected (0.000 sec)
2)收回所有用户的权限
格式:
revoke all privileges,grant option from 'username'@'localhost';
参数的含义:
all privileges:所有的权限
grant option:表示向其他用户授予权限
四:总结
1:关于用户的管理
就是几个操作,创建用户,修改用户,删除用户
创建用户最常用使用到命令是grant命令,这个命令也可以赋予权限
修改用户包括2个方面,修改用户名和密码
用户名的修改使用的rename user old_user@'host' to new_user@'host';
修改密码使用的update语句,updata user
删除用户使用的drop命令 drop user q7@'localhost'
2:权限的管理
就是赋予权限,删除权限,权限的查询
权限的查询为show grants for 'username'@'host'
权限的授予:grant priv_type on database.table to 'username'@'host' identified by password
权限的删除分为单个权限的删除,或者所有权限的删除
revoke priv_type from 'username'@'host'
所有权限的删除
revoke all privileges,grant option from 'username'@'localhost'
3:本地主机和远程主机
本地主机:
就是关于有一个mysql服务器运行在本地电脑上,在同一台电脑上,连接到本地服务器就叫做本地连接
远程主机:
就是mysql的服务器在办公室那里,你在家里就能连接到mysql服务器,就叫做远程连接
六:小练习
1:创建一个用户使用create语句来创建;修改用户名字;修改用户的密码,添加用户的权限,查看当前的用户的权限,收回当前的权限或者收回用户的所有权限
2:创建一个用户使用grant语句来创建建;