mysql:从多数据库获取所有电子邮件地址?

kam*_*ine 1 mysql email email-address extract

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

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

我已经拥有root权限和phpmyadmin.

谢谢

spi*_*der 5

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

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

我使用的正则表达式来自这里: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"
Run Code Online (Sandbox Code Playgroud)

这将删除周围的引号.