coverl 发表于 2018-10-6 06:39:58

Linux学习总结(四十六)mysql 基本操作 下篇

1 mysql 用户管理
  对于互联网企业,我们知道数据是不可再生的资源,重要数据一旦丢失,将损失惨重。数据库的安全至关重要,因此对于后台管理员的权限要严格控制,要有针对性的创建用户,在满足管理需求的基础上,要最小化其操作权限。因此我们针对不同用户,会有选择性的针对某个库或者表单独授权,最大程度降低数据丢失的风险,防患于未然。
  1)最大授权
  grant all on *.* to 'user1'@'127.0.0.1'>
  all 表示所有的操作,增删改查都可以
  两个*, 前者代表所有的数据库,后者表示所有的表
  user1 指用户名
  127.0.0.1 为本机ip ,可以是网络上其他主机的ip,意思是客户端的来源ip
  identified by 后面跟密码。需要加单引号。
  2)仅针对某些操作授权
  grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.226.129'>
  3)针对所有的源ip授权
  grant all on db1.* to 'user3'@'%'>
  4)查看某个授权
  show grants for user1@192.168.226.129;
  举例:

  grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.226.129'>  如果要在给上面授权用户增加一个访问ip 怎么做,当然可以根据上面命令,直接修改ip,如果忘记了之前的授权项,我们可以直接查找出来,复制之前的命令结果,更改ip重新执行就可以。
  show grants for user2@192.168.226.129;


  GRANT USAGE ON *.* TO 'user2'@'192.168.226.130'>  GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'192.168.226.130';

  show grants for user2@192.168.226.130;


2 常用sql语句,增删改查。
  

select count(*) from mysql.user;//统计mysql库中user表的行数  select * from mysql.db\G;//查看表db表里的所有内容,慎用。
  select db from mysql.db; // 查看db表里的db字段
  select db,user from mysql.db; // 同时查看两个字段
  select * from mysql.db where host like '192.168.%'\G; //模糊匹配查询
  insert into db1.t1 values (1, 'abc');// 在表里插入一条数据

  update db1.t1 set name='aaa' where>
  delete from db1.t1 where>  truncate table db1.t1; // 清空一个表,保留表结构。
  drop table db1.t1;//删除整个表
  drop database db1; // 删除库
  

3 数据库的备份与恢复
  

备份库mysqldump -uroot -p123456 mysql > /tmp/mysql.sql  恢复库 mysql -uroot -p123456 mysql < /tmp/mysql.sql
  备份表 mysqldump -uroot -p123456 mysql user > /tmp/user.sql
  恢复表 mysql -uroot -p123456 mysql < /tmp/user.sql
  备份所有库 mysqldump -uroot -p -A >/tmp/123.sql
  只备份表结构 mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql
  

  注意:备份用的是mysqldump,恢复用的是mysql,备份表要写库名和表名,恢复表不用写表名。备份所有库,是-A ,备份表结构是-d


页: [1]
查看完整版本: Linux学习总结(四十六)mysql 基本操作 下篇