小程序如何访问本地mysql
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序如何访问本地mysql相关的知识,希望对你有一定的参考价值。
参考技术A 不能直接访问,需要通过service端api交互实现。如何从我在 Google App Engine SDK 上运行的 Python 应用程序访问本地 MySQL 实例?
【中文标题】如何从我在 Google App Engine SDK 上运行的 Python 应用程序访问本地 MySQL 实例?【英文标题】:How to access a local MySQL instance from my Python app running on Google App Engine SDK? 【发布时间】:2013-02-19 05:48:11 【问题描述】:最近,我正在阅读 Google Developers Academy 网站上的“将 Python App Engine 与 Google Cloud SQL 结合使用”教程。但是,我偶然发现了练习“使用本地 MySQL 实例构建应用程序”的第一部分。我无法将示例代码 (main.py) 连接到我的本地 MySQL 实例。想知道是否有人找到了解决此问题的方法。
如果您能与我分享您是如何设置 MySQL 并对其进行配置以便 GAE 的沙箱能够访问 MySQL-python 连接器,那就太好了。
【问题讨论】:
【参考方案1】:由于我是 GAE、Python、MySQL 和使用 GAE 在 Mac OS X 上开发的新手,我确实花了一段时间才弄清楚如何让示例应用程序正常工作。既然我已经找到了解决方案,我想在这里分享它,这样您就可以按照我的步骤在您的本地 GAE SDK 环境中使用本地 MySQL 实例启动并运行示例应用程序。
就我个人而言,我发现这非常有用且方便,因为对于开发人员来说,在将 GAE 应用程序部署到 Google App Engine PaaS 上之前,在他们自己的机器上使用本地 MySQL 实例开发他们的 GAE 应用程序是很自然的。
不多说了,下面是我要分享的过程:
从 mysql.com 社区站点安装 MySQL dmg(我的版本是 mysql-5.5.30-osx10.6-x86_64.dmg)
修改您的 ~/.profile 以添加这些环境变量(添加这些行) export PATH=/usr/local/mysql/bin:$PATH (或您安装的任何 MySQL 版本) 导出 DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
如果您尚未从 Apple 的 AppStore 安装 Xcode。然后确保您还从首选项“下载”部分安装了“命令行工具”。这一步是必要的,因为它将安装一个 gcc 编译器(位于我的文件系统:/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2)以在下面的第 4 步中构建 MySQL-python 连接器。
然后运行“sudo easy_install MySQL-python”(这样您就可以将应用程序连接到 Mac 上的本地 MySQL 实例)
由于适用于 Python 的 Google App Engine SDK 是沙箱环境,因此您需要在此文件 /usr/local/bin/dev_appserver.py 中添加“import MySQLdb”,以将 GAE 的沙箱环境桥接到本地 MySQL 实例。您需要在“main.py”文件的 [示例代码][2] 中进行以下更改。如下才能正确运行示例代码:
在“import”部分添加“import MySQLdb”语句。 将“CLOUDSQL_INSTANCE = ''”语句替换为“CLOUDSQL_INSTANCE = 'localhost'”。 需要重写“get_connection()”函数,因为 MySQLdb 包是 MySQL 的 DB API v2.0 兼容接口。 MySQLdb的“connect()”函数不理解参数:“instance”、“database”和“password”。要使用 MySQLdb 包访问本地 MySQL 实例,您需要重写“get_connection”函数,如下所示:
def get_connection():
return MySQLdb.connect(host=CLOUDSQL_INSTANCE, db=DATABASE_NAME,
user=USER_NAME, passwd=PASSWORD, charset='utf8')
完成上述所有步骤后,您现在可以通过执行以下命令启动示例应用程序:“dev_appserver.py”。在您的应用程序目录中。
如果您使用默认的 8080 端口,您可以将浏览器指向 http://localhost:8080
。
享受乐趣。
【讨论】:
【参考方案2】:我在某个项目之前设法做到了这一点。程序如下(适用于Windows):
-
安装mysql服务器MYSQL 在安装过程中注意
用户名和密码以及实例的名称应该是
像 MySQL55
下载并安装 mysql python 连接器MYSQL Python Connector
确保 Mysql 服务器正在运行
在您的应用中插入以下导入行:
from google.appengine.api import rdbms
5 .我所做的是创建一个返回数据连接的函数,如下所示:
def conn_to_db():
return rdbms.connect(instance='MySQL55', database='Your_db_name_here', user='root', password='whatever_password_you_chose')
然后查询数据库:
conn = conn_to_db()
cursor = conn.cursor()
cursor.execute('SELECT * FROM foo where foos = %s', (bar))
for row in cursor.fetchall():
var1 = row[0]
var2 = row[1]
conn.close()
【讨论】:
以上是关于小程序如何访问本地mysql的主要内容,如果未能解决你的问题,请参考以下文章