第一篇淘宝用户分析中用到了这个功能,感觉挺实用,把自己之前走过一堆弯路总结的经验分享一下。
MySQL-5.7.28 Excel-2019
首先,要让MySQL与外部软件连接,需要为MySQL安装ODBC(Open Database Connectivity 开放数据库连接)。
下载MySQL Connector/ODBC数据库驱动
https://dev.mysql.com/downloads/connector/odbc/
虽然官方推荐说MySQL 在5.5版本以上,建议安装8.0驱动。但如果你的MySQL数据库版本不是8.0以上版本,还是建议下载5.3.xx的版本,试过MySQL 5.7版本,安装8.0.12驱动,并不能使用。
文件名:mysql-connector-odbc-5.3.14-macos10.14-x86-64bit.dmg(MySQL非8.0以上版本建议下这个)
文件名:mysql-connector-odbc-8.0.19-macos10.15-x86-64bit.dmg(MySQL是8.0以上版本建议下这个)
下载完后不能直接安装,到最后一步会提示安装失败,这是因为Mac OS把ODBC管理组件去掉了,所以除了安装驱动外,还需要先安装一个ODBC驱动管理软件。
iODBC驱动
官网链接:http://www.iodbc.org/dataspace/doc/iodbc/wiki/iodbcWiki/Downloads#Mac%20OS%20X
在网上搜索失败原因的时候,我阴差阳错安装了这个:
http://www.odbcmanager.net/,也可以用。
安装好管理软件之后,再安装MySQL ODBC直接成功。
安装好驱动后,配置要连接的MySQL数据源参数。进入 应用程序-实用工具-ODBC Manager,出现以下界面,在"系统 DSN"中有两个默认数据源:ANSI相当于关联的数据库编码为GBK,Unicode相当于关联的数据库是utf8编码,一般数据库都为utf8编码。
选择 系统DSN-MySQL ODBC 5.3 Unicode Driver-配置。
DSN Name随便写,这是给自己看的。关键是下面要按照格式来添加:
SERVER即MySQL服务器IP地址,本地可写localhost,PORT即数据库服务端口,通常是3306,DATABASE即连接成功后使用哪个数据库(填你要用的数据库名称)
这个DATABASE一定要设置,否则后面Excel会提示错误。
输入完成后,点好保存,再次点击配置,会发现有时候DATABASE的数值变成了Value,修改保存,多试几次,直到点配置进去不再变化,退出ODBC Manager。
进入Excel尝试连接,数据-新建数据库查询-从数据库,点选刚才配置好的Driver-OK,出现这个登录界面,这里输入MySQL数据库的用户名(一般未改动为root)、密码。
第一次提示这个错误,意思是这个ODBC Driver无法被加载。出现这个问题的原因是Excel没有权限去读ODBC驱动文件。
解决方法是:进入 /usr/local/mysql-connector-odbc-5.3.14-macos10.14-x86-64bit/lib,可以看到这两个文件
将这两个文件复制到/Library/ODBC目录下,然后在/Library/ODBC目录下找到odbc.ini,使用任一编辑器打开,将你配置过的数据源的Driver地址改成下面这样即可。
再到Excel中尝试,又出现一个错误提示,意思是不能通过/tmp/mysql.sock文件连接到本地MySQL服务器。
到/tmp中查看,确实没有,网上查找解决方案,重启MySQL,出现了这个文件。
再次到Excel中尝试,还是提示这个错误。终于在将错误语句完整复制到百度搜索后,找到这篇博文 https://www.cnblogs.com/Lam7/p/6090989.html
当使用host参数为“localhost”连接Mysql服务时,会优先使用“sock文件”进行连接,而不是使用“IP:端口”进行连接,而Mysql尝试使用“sock文件”进行连接时,却无法获取“sock文件”的位置。
要解决此错误,有两种解决方法:
将连接参数“host”的值由“localhost”改成“127.0.0.1”;
按下面方法,在“/etc/mysql.cnf”中指定“sock文件”位置。
直接用第一种方法,尝试成功。