作为一名数据库运维人员,应该遇到过表记录被异常全表更新,这个时候该怎么办。作为Mysql数据库运维人员,第一反应,应该就是上报,然后联系开发人员,确认此表作用,然后再确定恢复方案。

在这里举一个配置表的例子,如果配置被异常更新,则需要先将被设置成只读,然后从备份里恢复出数据,或者看看产品是否能做出配置数据。

在这里就来详细说一下表是如何设置成只读。

1.设置表只读

[root@localhost] 10:46:02 [sbtest]>show tables;+------------------+| Tables_in_sbtest |+------------------+| sbtest1          || t_test           |+------------------+2 rows in set (0.00 sec)[root@localhost] 10:46:03 [sbtest]>lock tables t_test read;Query OK, 0 rows affected (0.00 sec)

2.测试表只读是否生效

[tony@localhost] 10:47:03 [sbtest]>insert into t_test values(2000,93333,'efsdaf','fdsaf');[root@localhost] 10:47:26 [(none)]>show full processlist;+----+-----------------+-----------+--------+---------+--------+---------------------------------+--------------------------------------------------------+| Id | User            | Host      | db     | Command | Time   | State                           | Info                                                   |+----+-----------------+-----------+--------+---------+--------+---------------------------------+--------------------------------------------------------+|  5 | event_scheduler | localhost | NULL   | Daemon  | 418013 | Waiting on empty queue          | NULL                                                   || 75 | root            | localhost | sbtest | Sleep   |     64 |                                 | NULL                                                   || 76 | tony            | localhost | sbtest | Query   |     23 | Waiting for table metadata lock | insert into t_test values(2000,93333,'efsdaf','fdsaf') || 78 | root            | localhost | NULL   | Query   |      0 | starting                        | show full processlist                                  |+----+-----------------+-----------+--------+---------+--------+---------------------------------+--------------------------------------------------------+4 rows in set (0.00 sec)

从上面可以看到,insert插入操作已经被堵塞了,等待的是表元数据锁。

3.解锁表只读锁

当恢复sql准备好之后,就可以解锁表的只读锁。

[root@localhost] 10:50:20 [sbtest]>unlock tables;Query OK, 0 rows affected (0.00 sec)

解锁之后,就可以正常插入记录了。

[tony@localhost] 10:50:46 [sbtest]>insert into t_test values(2000,93333,'efsdaf','fdsaf');Query OK, 1 row affected (0.44 sec)

喜欢的,可以添加关注

只读属性怎么来的初值_设置Mysql表只读,关键时刻或许能救你一命相关推荐

  1. mysql表名不区分大小写_设置mysql表名不区分大小写

    查看mysql版本: [root@localhost logs]# mysql -V mysql Ver14.14 Distrib 5.6.37, for linux-glibc2.12 (x86_6 ...

  2. mysql拒绝访问root用户_设置mysql的root用户允许远程登录

    设置MySQL的root用户允许远程登录 连接数据库 [root@localhost ~]# mysql -uroot -p密码 选择mysql数据库 mysql> use mysql; 设置访 ...

  3. mysql 时区设定_设置MySQL默认时区

    MySQL默认的时区是UTC时区,比北京时间晚8个小时. 假设日志里面的时间是中午12:00,那么北京时间应该是晚上的8:00点钟. 为方便查看和设置时间,我们要设置MySQL的默认时区,以符合本地使 ...

  4. mysql设置最大使用内存_设置MySQL使用大内存页面

    一般情况下使用的内存为每页4K,使用 huge page 的话默认是每页 2M.如果设置MySQL使用 huge page 至少有两个好处,一个是可以减少 Translation Lookaside ...

  5. mysql 编码格式_设置MySQL的字符编码

    前言 这里我已经将MySQL的数据库编码设置为UTF-8,所以下面现实的都是UTF-8. 设置MySQL数据库的编码方式有三种,分别是基于session会话的.基于全局gloable的.永久性改变的. ...

  6. mysql 碎片率_计算MySQL表碎片的SQL整理

    原标题:计算MySQL表碎片的SQL整理 这是学习笔记的第 2111 篇文章 在之前整理过一版MySQL的数据字典,整理了一圈,发现远比想象的复杂. 当然整理的过程不光是知识梳理的过程,也是转化为实践 ...

  7. mysql 控制id复原_清空mysql表后,自增id复原

    一.清除mysql表中数据 deletefrom表名; truncate table 表名; 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以 ...

  8. maxvalue mysql自动分区_创建mysql表分区的方法

    创建 mysql 表分区的方法 我来给大家介绍一下 mysql 表分区创建与使用吧,希望对各位同学会有所帮助.表分区的测试使用,主要内容来自 于其他博客文章以及 mysql5.1 的参考手册. 表分区 ...

  9. mysql 表列表_一个MySQL表中的多列表显示

    从MySQL表中显示多列时遇到问题 这很简单 - 我有28条记录,我想做7行4行 - 每条记录只有两列 - id#和name(表中的"句柄"). 我的问题是,当我使用 > $ ...

最新文章

  1. Kostya Keygen#2分析
  2. UITextView添加占位字符
  3. autofac 用法总结
  4. php跨域请求解决方案_swoft2 -跨域与中间件详解
  5. 蓝桥杯——机器人行走
  6. SVG_text.动态创建换行显示(横)
  7. c语言2维动态数组,如何创建一个动态2维数组?
  8. 几个关于oracle 11g ASM的问题
  9. ORB-SLAM 解读(二) ORB描述子如何实现旋转不变性
  10. IQ推理:P先生和Q先生
  11. informix php,连接到informix数据库 - PHP 方式
  12. 软件工程导论习题集 | 170道选择 | 50道填空 | 40道简答 | 其他试卷资源
  13. matlab句柄无效怎么解决,新编MATLABSimulink自学一本通第21章 MATLAB程序编译.ppt
  14. Castaways钓鱼还能参与么,数据来告诉你答案
  15. 【Visual C++】游戏开发笔记四十二 浅墨DirectX教程之十 游戏输入控制利器 DirectInput专场
  16. Python编程语言好学吗 怎么能学好Python开发
  17. open /data/prometheus: too many open files
  18. 《狂飙》壁纸大嫂如此惊艳,做成日历壁纸天天看(7)
  19. php账号登录验证手机号码,最完整的php验证手机号码
  20. 网络安全学习笔记——红队实战攻防(上)

热门文章

  1. GTK+ 2.4 or later isn't available
  2. python def函数_Python教程之Lambda表达式知识概述
  3. oracle如何并发重建索引,oracle数据库如何重建索引?
  4. android蓝牙4.0使用方法
  5. 图解springmvc 执行流程
  6. 注解和反射实现dao层增删改查
  7. linux使用root操作文件,以root用户登录Linux系统,当前目录是/root,要求完成如下操作和功...
  8. display:table的用法
  9. BZOJ 2768 [JLOI2010]冠军调查
  10. linux下搭建mongodb副本集