数据库管理

MySQL访问控制由两部分构成

连接时验证:使用有效的用户名和密码来进行登录操作
执行时验证:每个需要执行的SQL语句, MySQL会检查登录的用户是否具有足够的权限来执行该语句

权限位置

mysql 数据库包含五个主要的授权表

user表:包含用户帐户和全局权限列。 我们登录所用的用户信息都保存在这。

db表:包含数据库级权限。

table_priv和columns_priv表:包含表级和列级权限。

procs_priv表:包含存储函数和存储过程的权限。

创建用户

create user username identified by "password";

create userli@localhost identified by "li";--新建本地账户
create user li@% identified by "li";--新建远程和本地通用账户
create user li@192.168.0.110 identified by "li";--新建远程ip制定账户

查看账户权限
show grants for li@localhost;

GRANT USAGE ON *.* TO "li"@"localhost" IDENTIFIED BY PASSWORD '*密文密码'

*.*显示 li 用户帐户只能登录到数据库服务器, 没有其他权限
两个星号的区别:前者表示数据库, 后者表示表

刷新权限、在删除账户,新建账户并授权之后
flush privileges; 

授予权限

GRANT privilege,[privilege],.. ON privilege_level
TO user [IDENTIFIED BY password]
[REQUIRE tsl_option]
[WITH [GRANT_OPTION | resource_option]];

**授予所有权限**
grant all on *.* to "li"@"localhost" with grant option;

show grants for li@localhost;

GRANT ALL PRIVILEGES ON *.* TO "li"@"localhost" IDENTIFIED BY PASSWORD '*密文密码' WITH GRANT OPTION

flush privileges; 

撤销权限

REVOKE privilege_type [(column_list)]
[, priv_type [(column_list)]]...
ON [object_type] privilege_level
FROM user [, user]...

revoke all privileges, grant option from li;

删除一个或多个用户

use mysql;
select user, host from mysql.user;

删除用户,删除多个时用逗号(,)隔开
drop user "li@localhost";

例外:如果删除时该用户已经连接到数据库,那么删除之后该用户仍可使用到会话结束,
可以采取在删除之前先关闭用户的会话
show processlist;
kill id;--杀死id
drop user li@localhost;

备份数据库

mysqldump -u[username] –p[password] [database_name] > [dump_file.sql]

[username] : 有效的MySQL用户名。
[password] : 用户的有效密码。
[database_name] : 要备份的数据库名称
[dump_file.sql] : 要生成的转储文件

Mysql数据库备份指令格式:
mysqldump -h主机名  -P端口 -u用户名 -p密码 (database) 数据库名 > 文件名.sql

1、备份MySQL数据库的命令
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

2、备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -add-drop-table -uusername -ppassword databasename > c:\li.sql

3、直接将MySQL数据库压缩备份
mysqldump -hhostname -uusername -ppassword databasename | gzip > c:\li.sql.gz

4、备份MySQL数据库某个()表
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > c:\li.sql

5、同时备份多个MySQL数据库
mysqldump -hhostname -uusername -ppassword –-databases databasename1 databasename2 databasename3 > c:\li.sql

6、仅备份数据库结构
mysqldump -uroot -proot –-no-data-databases project3 project3 project4 > c:\li.sql

7、备份服务器上所有数据库
mysqldump -uroot -proot –-all-databases > c:\li.sql

恢复数据库

数据库还原有三种方式:source命令、mysql、gunzip命令

source命令

进入mysql数据库控制台,登录
mysql -uroot -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source  c:\li.sql

mysql

mysql -hhostname -uusername -ppassword test < c:\li.sql

gunzip命令

gunzip < c:\li.sql.gz | mysql -uusername -ppassword test

其他命令

列出所有的数据库
show databases;

模糊查询数据库(pro%:以pro开头;%pro:以pro结尾;%pro%:含有pro)
show databases like '%pro%';

列出数据库下所有的表
show tables;

列出数据库下所有的表和视图
show full tables;
create view selectAll as select * from employee;

模糊查询表参考模糊查询数据库,二者一样

查看表结构
describe employee;
desc employee;
show columns from employee;
show full columns from employee;
模糊查询参看模糊查询数据库
show full columns from employee like '%pro%'

列出所有用户
select user from mysql.user;

显示当前登录用户
select user();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值