1、概念
1.为了防止有人恶意修改 删除数据库 于是进行备份2.内部员工操作不规范3.测试服务器有多台 使用同一个服务器 或者使用不同的数据库4.预发布服务器 把修改好的代码放到预发布服务器 备份 还原到预发布服务器 线上数据库进行备份,还原到预发布服务器
2、备份整个表
create table db2 like db1;创建一个和db1字段结构相同的db2(只是备份了表结构,没有备份表数据)insert into db2 select * from db1(从db1中备份数据到db2)
3、备份一个表的部分字段信息
create table student1(id int(20),name varchar(20));insert into student1(id,name) select id,name from student;
4、备份和还原数据库
4.1备份
mysqldump -uroot -p111111 homework > homework.sql (在Linux命令行下输入)
4.2还原
第一步:create database homework1;先新建一个数据库第二步:mysql -uroot -p111111 homework1 < homework.sql
数据库的用户权限1.在公司中,对数据库的操作权限大部分只有查找select2.在公司中,对数据库的操作权限小部分有增删改查查看mysql数据库中的user表select host,user,password from user;1、创建用户并赋予相关权限
第一步:进入MySQL第二步:创建一个名为alice的用户,并且设置密码为123456
insert into user(host,user,password)values("localhost","alice",password("123456"));flush privileges;刷新user表的信息select host,user,password from user;查看是否创建成功
第三步:退出MySQL,尝试用新创建的用户信息登录
mysql -ualice -p123456
第四步:为新创建的用户添加权限
alice:show grants for 'alice'@'localhost';root: grant select,update,delete,drop,create on *.* to "alice"@"localhost" identified by "123456";flush privileges;刷新user信息show grants for 'alice'@'localhost';查看权限是否被赋予给alice
*.* 的含义第一个*表示所有库第二个.表示所有表第三个*表示所有操作2、创建并同时给一个用户授权grant all privileges on *.* to"leon"@"%" identified by "123456";远程登录权限grant all privileges on *.* to"leon"@"localhost" identified by "123456";本地登录权限flush privileges;3、取消远程登录用户的所有权限
revoke all on *.* from "test"@"%";
4、删除用户
delete from user where user="test" and host="%";delete from user where user="test" and host="localhost";
5、修改密码
update user set password=password("111111") where user="scnu";
select version(); 查询数据库版本select now(); 查询数据库的当前时间select database(); 查询当前使用的数据库名称select user(); 查询当前登录用户