需求如标题所见,整个过程还是碰到了不少坑,现将过程记录如下,供参考:
一、Mac下安装MySQL客户端管理工具
这一步并不是Python访问MySQL所必须的,不过我们也常常有通过可视化工具访问数据库的需求。
不管是什么系统,MySQL官方都提供了的客户端管理工具(mysql-workbench),直接附上链接,按提示安装就好。
官网下载地址:https://dev.mysql.com/downloads/workbench/
界面截图:
二、安装Python Connector
依照以前的经验,python脚本访问mysql数据库,肯定也需要相关的connector工具包,不过实践中还是走了很多弯路。
先说一下最终解决办法:
sudo pip install PyMySQL
一行命令就搞定!直接通过PyMySQL模块访问数据库,剩下的就是在脚本中import pymysql.cursors,具体示例见第三部分。
----------------------------------------------------------------------
接下来,就是我走过的弯路了,心急的可以直接跳过。
我先是按经验在官网(https://dev.mysql.com/downloads/connector/python/)下载安装了对应版本的mysql-connector-python。
在验证安装是否成功时报错:
>>> import mysql.connector as mc
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "mysql.py", line 5, in <module>
import MySQLdb
ImportError: No module named MySQLdb
可见还需要安装MySQLdb。
然后参考(http://www.runoob.com/python/python-mysql.html)尝试通过源码包安装,报错如下:
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 403: SSL is required
最后尝试通过pip或easy_install的方式安装,都遇到错误:
Collecting mysql-python
Using cached https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip
Complete output from command python setup.py egg_info:
sh: mysql_config: command not found
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/96/8wg559294wz2h0ymw3ypjqdc0000gn/T/pip-install-NmD6sR/mysql-python/setup.py", line 17, in <module>
metadata, options = get_config()
File "setup_posix.py", line 43, in get_config
libs = mysql_config("libs_r")
File "setup_posix.py", line 25, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/96/8wg559294wz2h0ymw3ypjqdc0000gn/T/pip-install-NmD6sR/mysql-python/
根据“mysql_config not found”的提示,估计还是mysql自身安装不完全,但后续就没再继续尝试安装其他工具包了。
最终还是通过PyMySQL模块达成目标。
----------------------------------------------------------------------
三、Python 访问MySQL代码示例
#-*-coding:utf-8-*-
# Time:2019/01/07
# Author:Chengweinan
import pymysql.cursors
# mysql init
def get_cursor():
connection = pymysql.connect(host='XXX,XXX,XXX,XXX',
user='yourUserName',
password='yourPassword',
db='yourDatabaseName',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
return connection.cursor()
def execute():
cursor = get_cursor()
cursor.execute("select * from XXX")
result = cursor.fetchall()
for row in result:
print row
if __name__ == "__main__":
execute()
----------------------------------------------------------------------
参考链接:
1. https://blog.csdn.net/chinagrowing/article/details/81209873