数据库的高级操作

数据的备份(mysqldump命令)

1、备份单个数据库

  mysqldump -uusername -ppassword dbname [tbname1 [tbname2 ···]] > filename.sql

  (-u后面的参数username表示的是用户名,-p后面的参数password表示的是登陆密码,dbname表示需要备份的数据库名称,tbname表示数据库中的表名,可以是一个或多个表,多个表之间用空格隔开,如果不指定则备份整个数据库,filename.sql 表示备份文件的名称,文件名前可加上绝对路径)

  注:在使用mysqldump命令时,直接在DOS命令行窗口中执行该命令即可,不需要登陆到MySQL数据库

2、备份多个数据库

  mysqldump -uusername -ppassword --database dbname1 [dbname2 dbname3···] > filename.sql

  (--database 参数后面至少应指定一个数据库名称,如果有多个数据库,则名称之间用空格隔开)

3、备份所有数据库

  mysqldump -uusername -ppassword --all-databases > filename.sql

  注:如果使用   --all-database 参数备份了所有的数据库,那么在还原数据库时,不需要创建数据库并指定要操作的数据库,因为对应的备份文件中包含 create database 语句和 use语句

数据的还原(还原数据库中的数据,库是不能被还原的)

  mysql - uusername -ppassword [dbname] < filename.sql

注:在还原之前必须先创建数据库

还可以登录到MySQL,使用 source 命令来还原数据

  source filename.sql

用户管理

1、用户列

2、权限列  (以priv 结尾的字段决定了用户的权限)

3、安全列

4、资源控制列

创建普通用户

1、使用 create user 语句    (服务器会自动修改相应的授权表,但需要注意的是,该语句创建的新用户是没有任何权限的)

  create user 'username'@'hostname' [identified by [password]'password'] [, 'username'@'hostname' [identified by [password]'password']] ···

  (username表示新创建的用户名,hostname表示主机名,identified by 关键字用于设置用户的密码,password 表示用户的密码,password关键字表示使用哈希值设置密码,该参数是可选的,如果密码是一个普通的字符串,就不需要使用password关键字)

  例:创建一个新用户user2,密码为123

    create user 'user2'@'localhost' identified by '123';

2、使用insert语句(没有刷新权限表的功能)

  INSERT INTO mysql.user(Host,User,Password,ssl_cipher、x509_issuer、x509_subject)'  values ('hostname','username',PASSWORD('password'),' ',' ',' ');

  (mysql.user参数表示操作的表,Host,User,Password,ssl_cipher、x509_issuer、x509_subject为相应字段,PASSWORD()是一个加密函数,用于给密码加密)

  注:使用insert语句创建用户时,通常只添加Host,User,Password这三个字段即可,其他的字段取默认值,但由于ssl_cipher、x509_issuer、x509_subject字段是没有默认值的,因此还需要为这几个字段设置初始值

  例:创建一个新用户,用户名为user3,密码是123

    create inyo mysql.user (Host,User,Password,ssl_cipher、x509_issuer、x509_subject)   values ('localhost','user3',password('123'),' ' ,' ',' ');

刷新权限表:

  flush privileges;

3、grant语句为以创建的用户授权

  grant privileges on database.table to 'username'@ 'hostname'[,'username'@'hostname'] ···

  例:

 

    grant select on chapter08.student  to 'user1'@'localhost';

删除普通用户

1、使用drop user 语句(可以删除一个或多个用户,多个用户之间用逗号隔开;需要拥有drop user 权限)

  drop user 'username'@'hostname'[,'username'@'hostname'];

2、使用 delete 语句(不仅可以删除普通表中的数据,还可以删除user表中的数据,只需要指定表名为mysql.user ,以及要删除的用户信息即可;必须拥有对mysql.user 表的delete权限)

  delete from mysql.user where host='hostname' and user='username';

  例:删除用户user2

    delete from mysql.user where host='hostname' and user = 'user2';

修改用户密码

1、修改root用户密码

(1)使用mysqladmin语句  (mysqladmin 命令通常用于执行一些管理性的工作,以及显示服务器状态等,在MySQL中可以用来修改root密码)

  mysqladmin -u username [-h hostname] -p password new_password

  例:在DOS命令窗口中,将root用户的密码修改为123

    mysqladmin -u root -p password 123;

2、root用户修改普通用户的密码

(1)使用update语句

  update mysql.user set password=加密函数('new_password')  where user='username' and host = 'hostname';

(2)使用alter语句

  alter user '用户名' @'hostname' identified with mysql_native_password by '新密码';

  flush privileges;

 

(3)使用set语句

  SET PASSWORD FOR 'username'@'hostname'=PASSWORD('new_password');

3、普通用户修改密码

  SET PASSWORD=PASSWORD('new_password');

权限管理

1、授予权限 (grant)

  

 

 

 

 

 

 2、查看权限

  show grants for 'username'@'hostname';

3、收回权限 (revoke)

  1、收回用户指定权限

 

  2、收回全部权限

 

 

posted @ 2020-12-21 15:54  xfx#n  阅读(287)  评论(0)    收藏  举报