前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux下的mysql用户管理,常用sql语句,mysql数据库备份恢复

Linux下的mysql用户管理,常用sql语句,mysql数据库备份恢复

作者头像
端碗吹水
发布2020-09-23 11:17:29
2.4K0
发布2020-09-23 11:17:29
举报
文章被收录于专栏:程序猿的大杂烩

笔记内容:

  • 13.4 mysql用户管理
  • 13.5 常用sql语句
  • 13.6 mysql数据库备份恢复

笔记日期:2017-10-31

13.4 mysql用户管理

4181
4181

搭建一个网站时,后台的应用程序会连接mysql,连接mysql就需要一个用户密码,但是不能让它使用root用户,root用户的权限太高不安全,所以需要创建一个用户,并授予这个用户一些权限,你可以具体的授予这些用户的某些权限,让它能操作什么不能操作什么。

下面就来介绍一下如何创建mysql用户以及授权:

  1. 创建用户,语句如下:

grant all on *.* to 'user1'@'192.168.77.130' identified by '123456a';

4182
4182

常识:这种grant语句是不会记录到命令历史里的,因为不安全。

现在就创建好一个user1用户了,因为创建这个用户的时候是指定了来源IP的,所以在登录这个用户时需要使用-h指定IP:

4183
4183

如果想要创建一个可以本地连接的mysql用户,在创建时指定localhost就可以了:

grant all on *.* to 'user1'@'localhost' identified by '123456a';

4184
4184

创建为可以本地连接的用户,登录时就不需要使用-h指定来源IP了:

4185
4185

使用show grants; 可以看到当前用户拥有哪些权限:

4186
4186

如果想看具体的某个用户的话,在命令后加上for 用户名@登录方式  即可,示例:

show grants for user1@'localhost';

4187
4187

我们再创建一个用户,给这个用户授予具体对某个库的操作权限:

4188
4188

现在我们查看一下user2的权限:

4189
4189

可以看到user2具体能执行的sql语句,和可以操作哪个库的哪些表。

当你想增加用户的连接IP或者其他权限时,就可以直接复制show grants命令显示出来的语句,然后更改IP即可,例如我要让user2能使用192.168.77.139这个IP登录:

4190
4190

然后再show grants看一下:

4192
4192

原本的IP也能连接,这个操作是增加一个可以连接的IP:

4193
4193

13.5 常用sql语句

4194
4194

下面简单介绍几个mysql中常用的增删查改语句:

  1. select count(*) from mysql.user;

这条语句是查看mysql库中的user表有多少行,count是一个统计行数的函数:

4195
4195
  1. select * from mysql.db\G;

查看mysql库中的db表里的所有内容:

4196
4196
  1. select db from mysql.db;

查看mysql库中的db表里db字段的所有内容:

4197
4197
  1. select db,user from mysql.db;

查看mysql库中的db表里db和user 字段的所有内容:

4198
4198
  1. select * from mysql.db where host like '192.168.%'\G;

查看mysql库中的db表里host字段为192.168.开头的所有内容,like是模糊查询的关键字,where是指定的一个条件:

4199
4199
  1. insert into db1.t1 values (1, 'abc');

insert 语句是用来插入数据的:

4200
4200
  1. update db1.t1 set name='aaa' where id=1;

update 语句是用来修改或者说更新数据的:

4201
4201
  1. truncate table db1.t1;

清空数据,能够把一个表格里的所有数据都清空:

4202
4202
  1. drop table db1.t1;

drop 是用来删除结构的,drop的删除不仅仅删除数据,会把结构也一并删除,以上这条drop就是把db1库中的t1表给删除掉:

4203
4203
4204
4204

10. drop database db1;

这是删除数据库的,同样的也是删除结构:

4205
4205

drop和truncate、delete语句不同的是,前者删除在整个结构,后者仅仅删除结构中的数据。

谨记一点,drop和truncate、delete等语句尽量不要使用,如果需要使用的话记得提前备份数据,并且使用时万分小心看仔细了别删错数据了,如果不小心误操作把一个线上跑的数据库给删了的话,而且又没有备份可恢复,那么就等着被开除或赔偿吧。

13.6 mysql数据库备份恢复

4206
4206

因为数据的重要性,所以备份与恢复技术是非掌握不可的,在这里介绍一下,备份和恢复数据库的相关操作:

mysqldump是一个备份的命令,可以备份一个库,也可以备份一个表:

  1. 备份库,语法如下:

mysqldump -uroot -p123456 mysql > /tmp/mysql.sql

4208
4208
  1. 恢复库,将备份文件里的内容重定向到一个空的数据库中,语法如下:

mysql -uroot -p123456 mysql2 < /tmp/mysql.sql

4209
4209

进入到mysql2中,可以看到数据已经恢复到这个库中了:

4210
4210

从以上备份和恢复数据库可见,其实就是一个重定向的应用,重定向出去叫备份,重定向进来叫恢复。

  1. 备份表,除了备份整个数据库之外,还能针对数据库中的某个表进行备份,指定库名和表名即可,语法如下:

mysqldump -uroot -p123456 mysql user > /tmp/user.sql

4211
4211

可以使用less命令查看一下user.sql文件,会发现里面都是些sql语句:

4212
4212

通过sql语句逐个把数据恢复回去。

  1. 恢复表,和恢复库一样的,把备份的文件内容重定向回去,语法如下:

mysql -uroot -p123456 mysql < /tmp/user.sql

4213
4213
  1. 备份所有的库,如果mysql中有很多数据库,一个个去备份太麻烦,所以需要能够备份所有数据库的语句,语法如下:

mysqldump -uroot -p -A >/tmp/123.sql

-A是all,所有的意思

4214
4214

可以查看到这个备份文件就比较大了,有1.3M:

4215
4215
  1. 只备份表结构,如果你不需要数据的情况下,就可以只备份表结构,使用-d选项,语法如下:

mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql

4216
4216

然后你可以使用less查看备份文件的内容,会发现没有insert语句只有drop和create语句

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/10/31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档