使用ANTLR做一个简单的Python SQL语法解析器

最近在做一个数据库相关的平台(按照潮流现在平台应该叫做SAAS平台。。。),对于数据库相关的平台来说,SQL的语法分析就比较重要了,不管是从格式化SQL,还是分析SQL所涉及到的表、列来做安全审计,或者是自助SQL的提交所涉及到的语法检查及内部规范要求,都需要用到语法分析。 Continue reading

Python连接Mysql报错:(2002, “Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)”)

一开始程序直接使用的root连接,没有任何问题。可是之后在生产上使用某个特定账户的时候就报错了。经过检查发现这个用户只给与了从localhost登陆的权限,而从localhost登陆的话mysql是直接走Unix套接字连接的,由于这个特定账户没有权限访问这个套接字,所以造成无法访问数据库。

解决方法就是给这个特定账户赋予从特定主机访问的权限。比如这个账户需要从本机连本机的数据库,那么就给这个账户从本机IP的登陆的权限(grant XXX toto XXX%XXX),然后python那里的连接字符串换成主机名(不要写localhost,否则还是走的Unix套接字)就可以了