• 数据库整理(权限管理,备份,储存,触发器,事务,视图)


    权限管理:

      use mysql

      添加用户,允许这些ip下的用户通过指定的用户名和密码访问

      create user '用户名' @ “ip ” identified ‘密码’    其中,ip是可以使用模糊来指定一批地址的

      删除用户 drop user  '用户名' @ “ip ” 

      授权 grant select,insert,uqdate on 库名.表名 to  '用户名' @ “ip ” ;

      删权 revoke all on 库名.表名 from  '用户名' @ “ip ” ;

      权限的修改之后,都需要flush privileges;来刷新一下

      修改用户 rename user ‘用户名’@‘ip地址’ to ‘新用户名’@‘新ip地址’

      修改密码 set password for ‘用户名’@‘ip地址’=(‘新密码’);

    数据库备份:

      备份数据库:mysqudump -h ip... -p 3306 -u ... -p ... 库名 > 文件路径   此时得到的是创建这个数据库的所有语句,被称为逻辑备份

      恢复数据库:先创建同名要恢复的库,然后mysqudump -h ip... -p 3306 -u ... -p ... 库名 < 文件路径,即改变箭头方向即可

            不创建的话,在备份库名前加一个‘-B’,恢复的时候不需要再建,也不加库名

      分表,分库备份:shell 循环库名或表名

      增量备份:通过bin-log日志实现。主库操作,通过备份和增量复制到从库,主从备份;读写分离,写数据都写入主库,读数据都只能读取从库。

    数据高可用:

      主库宕机后,自动开启从库,承接线上对应的内容和程序

      同时监测两个库的运行

    集群:

      对数据分组做取余处理,根据余数进行分配,到不同的服务器中。这一组构架成为集群。

    视图:

      create view 试图名 as select * from course;

      生成一个相同数据内容的虚拟库,可以把多个表的数据组合在一起,避免多需重复操作。

      视图的修改可能会对多个联合的表产生复杂的影响,且效率低。不建议使用。

    触发器:

      在进行某些sql语句操作时,使其能够自动触发一些动作。

      创建触发器:

      需先声明语句结束符,结束后改回‘‘;’’

      delimiter //  #这里的是改结束符,改成什么符号都可以

      create tigger cmd_tri after insert on cmd for each row//

      begin

      if new .字段 = ‘no’ then

      insert into 表名(字段名1,字段名2)values (new.字段1,new.字段2);

      end if;

      end//

      delimiter;    # 这里的是把结束符改回原来的;

      可以通过记录错误状态触发系列操作,保存错误项和时间形成错误日志

      删除触发器:

      drop tigger 触发器名;

    事务:

      多个sql语句捆绑在一起执行,进行一个原子操作,全部执行生效才可以,有一句错误就都全部回滚。

      start transaction;
      update user set balance=900 where name='wsb';     #买支付100元
      update user set balance=1010 where name='chao';     #中介拿走10元
      uppdate user set balance=1090 where name='ysb';    #卖家拿到90元,出现异常没有拿到操作
      rollback;    #如果上面三个sql语句出现了异常,就直接rollback,数据就直接回到原来的状态了。
           commit;  #只要不进行commit,数据就没有保存硬盘上。执行了commit之后就没有办法rollback了。

    存储过程:

      在存储过程了写复杂的sql语句,放在服务端,开发者使用相关功能的时候进行调用即可,效率高

    创造存储过程(无参):

      delimiter //
      create PROCEDURE p5()   --存储过程名
      BEGIN
      sql语句;
      END //
      delimiter ;

      执行完之后,使用call p1(),则会执行一次内部的sql语句。

      删除存储过程:

      drop produre 存储过程名;

    创造存储过程(有参):

      三种,输入有参数,输出有参数,输入输出都有参数

      输入参数:

      p2(

      in 参数名 

      )

      

      

       

      

      

  • 相关阅读:
    【BZOJ4676】Xor-Mul棋盘 拆位+状压DP
    【BZOJ4688】One-Dimensional 矩阵乘法
    【BZOJ4704】旅行 树链剖分+可持久化线段树
    【BZOJ4709】[Jsoi2011]柠檬 斜率优化+单调栈
    【BZOJ4711】小奇挖矿 树形DP
    【BZOJ4715】囚人的旋律 DP
    【BZOJ4712】洪水 树链剖分优化DP+线段树
    服务器相关 HTTP 请求错误
    RSA算法
    公钥和私钥解释
  • 原文地址:https://www.cnblogs.com/shachengcc1/p/11447657.html
Copyright © 2020-2023  润新知