我试图弄清楚如何在数据库中定位一个url的所有事件。我想搜索所有表和所有字段。但我不知道从哪里开始,甚至不知道是否有可能。
当前回答
如果你可以使用bash -这里有一个脚本: 它需要一个用户dbread,并在数据库上传递dbread。
#!/bin/bash
IFS='
'
DBUSER=dbread
DBPASS=dbread
echo -n "Which database do you want to search in (press 0 to see all databases): "
read DB
echo -n "Which string do you want to search: "
read SEARCHSTRING
for i in `mysql $DB -u$DBUSER -p$DBPASS -e "show tables" | grep -v \`mysql $DB -u$DBUSER -p$DBPASS -e "show tables" | head -1\``
do
for k in `mysql $DB -u$DBUSER -p$DBPASS -e "desc $i" | grep -v \`mysql $DB -u$DBUSER -p$DBPASS -e "desc $i" | head -1\` | grep -v int | awk '{print $1}'`
do
if [ `mysql $DB -u$DBUSER -p$DBPASS -e "Select * from $i where $k='$SEARCHSTRING'" | wc -l` -gt 1 ]
then
echo " Your searchstring was found in table $i, column $k"
fi
done
done
如果有人想要一个解释:http://infofreund.de/?p=1670
其他回答
如果你可以使用bash -这里有一个脚本: 它需要一个用户dbread,并在数据库上传递dbread。
#!/bin/bash
IFS='
'
DBUSER=dbread
DBPASS=dbread
echo -n "Which database do you want to search in (press 0 to see all databases): "
read DB
echo -n "Which string do you want to search: "
read SEARCHSTRING
for i in `mysql $DB -u$DBUSER -p$DBPASS -e "show tables" | grep -v \`mysql $DB -u$DBUSER -p$DBPASS -e "show tables" | head -1\``
do
for k in `mysql $DB -u$DBUSER -p$DBPASS -e "desc $i" | grep -v \`mysql $DB -u$DBUSER -p$DBPASS -e "desc $i" | head -1\` | grep -v int | awk '{print $1}'`
do
if [ `mysql $DB -u$DBUSER -p$DBPASS -e "Select * from $i where $k='$SEARCHSTRING'" | wc -l` -gt 1 ]
then
echo " Your searchstring was found in table $i, column $k"
fi
done
done
如果有人想要一个解释:http://infofreund.de/?p=1670
Scott给出了一个很好的例子,但问题是你为什么要这么做?如果您需要对特定字符串执行查找-替换操作,您还可以尝试对数据库执行mysqldump,在编辑器中执行查找-替换操作,然后重新加载数据库。
也许如果你给出一些你想要达到的目标的背景,其他人可能会提供更好的答案。
一个简单的解决方案是这样做的:
mysqldump -u myuser --no-create-info --extended-insert=FALSE databasename | grep -i "<search string>"
我正在寻找相同的,但找不到它,所以我在PHP中做了一个小脚本,你可以在: http://tequilaphp.wordpress.com/2010/07/05/searching-strings-in-a-database-and-files/
好运! (我删除了一些私人代码,如果我没有在这个过程中破坏它,请告诉我:D)
本视频的前30秒展示了如何使用Phpmyadmin的全局搜索功能 这很有效。它将在每个表中搜索字符串。
http://www.vodahost.com/vodatalk/phpmyadmin-setup/62422-search-database-phpmyadmin.html
推荐文章
- 如何通过查询在MySQL中获得数据库结构?
- MySQL删除表中的所有行,并将ID重置为零
- 在准备语句中使用“like”通配符
- MySQL中的表名是否区分大小写?
- 库未加载:libmysqlclient.16。在OS X 10.6上使用mysql2 gem运行'rails server'时出现dylib错误
- 如何知道MySQL表最近一次更新?
- 在MySQL中的一个查询中更新多个具有不同值的行
- 如果表存在则删除表并创建它,如果不存在则创建它
- MySQL OR与IN性能
- 将值从同一表中的一列复制到另一列
- 删除id与其他表不匹配的sql行
- MySQL CPU使用率高
- INT和VARCHAR主键之间有真正的性能差异吗?
- 拒绝访问;您需要(至少一个)SUPER特权来执行此操作
- 从存储引擎得到错误28