1

我可以访问包含 2000 多个数据库的 MYSQL Server。我想扫描所有数据库以获取保存在数据库表中的所有电子邮件地址。

那么,请您给我一个从所有数据库中提取电子邮件地址的解决方案!?

我已经有root权限和phpmyadmin。

谢谢

4

1 回答 1

5

如果您有权访问所有表(即以 root 身份),则可以转储所有表和 grep 电子邮件地址,如下所示:

mysqldump -u root -p --all-database | egrep -i "\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b"

我使用的正则表达式取自这里: http ://www.regular-expressions.info/email.html

编辑:上面的命令将打印包含电子邮件地址的整行,而不考虑列。如果您有电子邮件专用列,则只需稍作修改即可打印电子邮件:

mysqldump -u root -p --all-database | perl -pe "s/,/\n/g; s/'//g;" | egrep -i "\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b"

这也将删除周围的引号。

于 2011-12-06T10:36:37.980 回答