前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >脚本找出mysql中缺少主键的表

脚本找出mysql中缺少主键的表

作者头像
保持热爱奔赴山海
发布于 2019-09-18 07:29:06
发布于 2019-09-18 07:29:06
3.3K0
举报
文章被收录于专栏:数据库相关数据库相关

有时候早期建的表上可能缺少主键,这样容易导致查询或者主从复制比较慢。

下面是一个小的脚本,用于找出没有主键的表。

#!/bin/bash

# 找出没有主键的表

# Date: 2017/06/05

source /etc/profile

LOG="/tmp/nopk.log_$(date +%F)"

user='root'

host='localhost'

pass='123456'

sock='/tmp/mysql.sock'

MYSQL_CMD="mysql -u$user -h$host -p$pass -S$sock"

dbs=$($MYSQL_CMD 2>/dev/null -BNe "select SCHEMA_NAME from information_schema.SCHEMATA where SCHEMA_NAME not in ('information_schema','performance_schema')")

for db in $dbs; do 

$MYSQL_CMD information_schema 2>/dev/null -NBe "select distinct TABLE_SCHEMA,table_name from columns where  TABLE_SCHEMA = '$db' and table_name not in ( select distinct table_name from COLUMNS  where TABLE_SCHEMA = '$db' and (column_key  = 'PRI' or column_key = 'UNI') )" | tee -a $LOG

done

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据库的一些注入技巧-mysql
SELECT 1 FROM dualWHERE 1 = '1'''''''''''''UNION SELECT '2';
Jumbo
2019/11/05
9410
找出没有主键的表
MySQL中, 如果表没有主键的时候,会造成主从延迟。 因此我们需要找出没有主键的表,然后人工加个主键。
保持热爱奔赴山海
2019/09/17
7860
Web Pentester Sqlinject
该文章是关于SQL注入漏洞的总结,通过分析不同的SQL注入类型、利用方式、漏洞危害以及修复建议,详细阐述了SQL注入漏洞的检测与防范方法,旨在加强对该类漏洞的理解和防范意识,提高网络安全防护能力。
企鹅号小编
2018/01/03
8460
Web Pentester Sqlinject
SQL注入原理剖析
SQL注入原理剖析 SQL注入流程 SQL注入流程: 1、判断是否有注入(判断是否为严格校验) 2、什么类型的SQL注入 3、语句是否能够被恶意修改 4、是否能够成功被带入执行 5、获取我们想要的数据
渗透攻击红队
2019/11/19
9820
SQL注入(SQL注入(SQLi)攻击)攻击-脱库
确认网站存在SQL注入时,可以对其进行脱库,即获取数据库表中的内容,比如用户的敏感信息
红目香薰
2022/11/29
8220
SQL注入(SQL注入(SQLi)攻击)攻击-脱库
一个表主键信息采集脚本
查询目前哪些表有主键,可以通过information_schema.key_column_usage表来确定哪些列使用了主键约束,这个表中包含如下列,每个列的含义如下: CONSTRAINT_CATALOG :约束所属目录的名称。 该值始终为def。 CONSTRAINT_SCHEMA :约束所属schema(database)名称 CONSTRAINT_NAME :约束名称 TABLE_CATALOG :表所属目录的名称。 该值始终为def。 TABLE_SCHEMA :表所属schema(database)名称 TABLE_NAME :具有约束的表的名称 COLUMN_NAME :具有约束的列的名称。 如果约束是外键,则这是外键的列,而不是外键引用的列。 ORDINAL_POSITION :列在约束内的位置,而不是列在表中的位置。列位置从1开始编号。 POSITION_IN_UNIQUE_CONSTRAINT:NULL对于唯一和主键约束。对于外键约束,此列是正在引用的表的键中的序号位置。 REFERENCED_TABLE_SCHEMA :约束引用的schema(数据库)的名称。 REFERENCED_TABLE_NAME :约束引用的表的名称。 REFERENCED_COLUMN_NAME :约束引用的列的名称。 我们来看看这个表中的记录吧:
AsiaYe
2019/11/06
5130
一个表主键信息采集脚本
MySQL系统表的利用姿势(浅探)
我们可以通过前期的渗透手段和分析得知目标网站某处存在SQL注入漏洞;于是我们就可以利用SQL的文件读取的特性来读取目标系统中的某个文件的内容
Mirror王宇阳
2020/11/12
7080
SQLi_Labs通关文档【1-65关】
为了不干扰自己本机环境,sql-lab我就用的docker跑起来的,搭建也非常简单,也就两条命令
HACK学习
2019/08/05
4K1
sql注入入门学习(数字型)(连载中)
在MySQL中,表名存放在information_schema数据库下tables表table_name字段中、查表名我们主要用到的是TABLES表
一个淡定的打工菜鸟
2018/12/07
1.2K0
mysql注入高级篇1--内置系统表注入
团队纳新了,为了让小鲜肉们有素材,我写了一些基础的东西。大神勿喷..... mysql> select database(); +--------------------+ | database() | +--------------------+ | information_schema | +--------------------+ 1 row in set (0.00 sec) 我当前选中的是information_schema mysql> show tables; +------
lonelyvaf
2018/06/07
1.3K0
1.1.1-SQL注入-SQL注入基础-SQL手工注入方法
核心原理: MySql内置的infromation_schema库,它功能强大,是我们进行MySql注入的基石!
tea9
2022/07/16
1.8K0
1.1.1-SQL注入-SQL注入基础-SQL手工注入方法
【MySQL】常用拼接语句
前言:在MySQL中 CONCAT ()函数用于将多个字符串连接成一个字符串,利用此函数我们可以将原来一步无法得到的sql拼接出来,在工作中也许会方便很多,下面主要介绍下几个常用的场景。
MySQL技术
2019/09/08
1.8K0
MySQL上线,检查数据库设计的“十条合规”
MySQL作为关系型数据库的典型代表,在国内环境里经历风雨磨砺,不断地精进,已经在开发和运维方面,成型了一套的规范。这些规范让了解和使用MySQL更加得心应手,并对后期的一些问题起到了很好的预防作用。
数据和云
2021/05/07
1.6K0
【Bypass】安全狗apache V4.0.23137 SQL注入绕过
乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
乌鸦安全
2022/04/15
9720
【Bypass】安全狗apache V4.0.23137 SQL注入绕过
新手科普 | MySQL手工注入之基本注入流程
MySQL手工注入的基本步骤以及一些技巧的记录,当出现学习手工注入的时候,网上的文章参差不齐,导致很长一段时间对手工注入的理解一直处于一知半解的状态,特此记录本文,让小白们少走些弯路。本文只针对手工注
FB客服
2018/02/24
1.1K0
新手科普 | MySQL手工注入之基本注入流程
安全笔记
CONCAT()函数用于将多个字符串连接成一个字符串。 使用数据表Info作为示例,其中SELECT id,name FROM info LIMIT 1;的返回结果为
XRSec
2022/02/13
3580
常用SQL语句分享
日常工作或学习过程中,我们可能会经常用到某些SQL,建议大家多多整理记录下这些常用的SQL,这样后续用到会方便很多。笔者在工作及学习过程中也整理了下个人常用的SQL,现在分享给你!可能有些SQL你还不常用,但还是希望对你有所帮助,说不定某日有需求就可以用到。
MySQL技术
2019/10/21
5550
Java代码生成器原理和编写
这里给大家提供些简单易于操作的思路,我们找到数据库连接中的information_schema这个库,这个库就是元数据库,保存着其他库以及库表的信息,并且一直维护.
全栈程序员站长
2022/08/20
9830
Java代码生成器原理和编写
MySQL 8 批量修改字符集脚本
从低版本迁移到MySQL 8后,可能由于字符集问题出现 Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) 错误,此时要修改对象的字符集。
用户1148526
2023/01/14
2.1K0
Sql注入基础_mysql注入
p { margin-bottom: 0.1in; direction: ltr; line-height: 120%; text-align: justify } p.ctl { font-size: 12pt } a:link { color: rgba(0, 0, 255, 1) }
梅花
2020/09/28
2.2K0
相关推荐
数据库的一些注入技巧-mysql
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档