我可以访问包含 2000 多个数据库的 MYSQL Server。我想扫描所有数据库以获取保存在数据库表中的所有电子邮件地址。
那么,请您给我一个从所有数据库中提取电子邮件地址的解决方案!?
我已经有root权限和phpmyadmin。
谢谢
我可以访问包含 2000 多个数据库的 MYSQL Server。我想扫描所有数据库以获取保存在数据库表中的所有电子邮件地址。
那么,请您给我一个从所有数据库中提取电子邮件地址的解决方案!?
我已经有root权限和phpmyadmin。
谢谢
如果您有权访问所有表(即以 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"
这也将删除周围的引号。