数据库的备份:
备份方式:
1.备份单个数据库,mysqldump命令备份数据库的语法格式如下:
mysqldump -u 用户名 -p 数据库名 [表1 [表2]] > 存储路径/备份文件名.sql
2.备份多个数据库,mysqldump命令备份多个数据库的语法格式如下:
mysqldump –u 用户名 –p -–databases 数据库1 数据库2 > 存储路径/备份文件名.sql
3.备份所有数据库,使用mysqldump命令备份所有数据库的语法格式如下
mysqldump –u 用户名 –p -–all-databases > 存储路径/备份文件名.sql
数据的还原:
这里指的还原是指还原数据库中的数据,库是不能被还原的。
(1)mysql命令还原数据无需登录数据库,直接在doc界面就可以完成。语法格式:
mysql –u 用户名 –p [dbname] < 存储路径/备份文件名.sql
(2)source 命令还原数据,需要登录到数据库才可以执行。语法格式:
source filename.sql
用户管理:
mysql数据库中,用户的相关信息保存在数据库系统里的mysql库中的user表中。包括了use,host,authentication_string,privilege等信息。(‘authentication_sting’对应mysql5.5版本的‘password’)
mysql版本的升级优化,mysql5.5版本中的grant语句和insert语句创建用户方式已不再试用。容易造成数据库的崩溃,建议大家直接规避这两种创建普通用户的方式。实际应用直接使用create user语句创建用户。语法格式:
CREATE USER 'username'@'hostname' IDENTIFIED BY 'password'
[,'username'@'hostname'[IDENTIFIED BY 'password']]…
演示:创建一个新用户。用户名为user2,主机名为localhost密码为123。此方法创建的新用户无权限,只要登录权限。
create user 'user2'@'localhost' identified by '123';
使用 select host,user,authentication_string from mysql.user;查询用户创建情况。
mysql> select host,user,authentication_string from mysql.user;
+-----------+------------------+------------------------------------------------------------------------+
| host | user | authentication_string |
+-----------+------------------+------------------------------------------------------------------------+
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root | $A$005$3;(W#Ux'T%3M7tX77vqLlDGzgTqnNNO20dn6KsLSVjtq7WtJfxGT2XC |
| localhost | user2 | $A$005$w," 6phbQn:7Eax(RzEVfpR.IgUdx8y8uQ8eG9Tj8Bu.PmZCkrmVhwV/X0B |
+-----------+------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)
语法格式:
grant privileges on dbname.tbname to 'username'@'hostname' [with with_option];
#其中grant option 将自己的权限授予其他用户,也就是说他有授予权限,可以自己获取的权限授予别人。
演示:给创建的用户user2授予对所有数据的select权限。
grant select on *.* to 'user2'@'localhost';
查询权限授予结果,使用show grants语句。
mysql> show grants for 'user2'@'localhost';
+--------------------------------------------+
| Grants for user2@localhost |
+--------------------------------------------+
| GRANT SELECT ON *.* TO `user2`@`localhost` |
+--------------------------------------------+
1 row in set (0.00 sec)
语法格式:
show grants for 'username'@'hostname';
演示:查看新增用户user2的数据库操作权限。
show grants for 'user2'@'localhost';
#如发现结果为GRANT USAGE ON *.* TO `user2`@`localhost` 代表此用户只有登录权限。
修改用户密码:
使用alter语句修改root用户密码。mysql8.0以上版本推荐使用此方法。 语法格式:
alter user 'username'@'hostname' identified by 'new passerword';
演示:修改root用户密码改为20190001.
alter user 'root'@'localhost' identified by '20190001';
revoke privileges [columns] on dbname.tbname from 'username'@'hostname';
演示:收回用户user2的select权限。
revoke select on *.* from 'user2'@'localhost';
在实际应用中,如果用户账号不再使用,可将创建的普通用户删除。
1.使用drop语句删除用户。
语法格式:
drop user 'username'@'hostname' ;
演示:删除用户user2。
drop user 'user2'@'localhost';
2.使用delete语句删除用户。
语法格式:
delete from mysql.user where user = 'username';
演示:删除用户user3.
delete from mysql.user where user = 'user3';