今天顺便聊一下我所使用的数据库平台搭配:数据库用MySQL 8.0.23, 编程语言用Python,计算工具用Excel 2019。为了实现Excel下面调用数据库,在Python平台上安装了xlwings 0.21.4, 以及Pandas, matplotlib,numpy,scipy等一些库。数据库管理用命令行不太方便,我便找了一个navicat for mysql. 我这几天重新安装系统,为了重新搭配这个平台还真不容易。最关键的还是MySQL的安装与数据的恢复,容易忘记就重新编辑放在这里备忘。
准备工作:
下载ZIP版本的MySQL程序(我用的是社区版,下载页面 https://dev.mysql.com/downloads/mysql/),释放到安装目录(如上述的d:greensoftmySQL-8.0.23-winx64)下,保证压缩包里的bin目录就地展开(成为d:greensoftmySQL-8.0.23-winx64bin)。或者你也可以选用MSI格式的安装包,64位的MySQL 8.0.23 msi安装包从以下地址下载: http://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.23-winx64.msi
建立my.ini
在安装目录(下面的basedir)下,新建一个编码为ANSI的文本文件my.ini, 内容如下:basedir后面的路径是你释放的Mysql数据库的路径,各人不相同。不要照抄。
[client]
default-character-set=utf8
[mysqld]
port = 3306
basedir=d:greensoftmySQL-8.0.23-winx64
# datadir=C:websqldata
max_connections=5
character-set-server=utf8
default-storage-engine=INNODB
强调一下,编码要求是ANSI格式,注意文本编辑器的编码设置,用Windows的记事本可能默认为UTF-8,用Notepad++或其它支持不同编码的编辑器都可以改为ANSI编码的。
1. 程序初始化。完成第1步之后, 从命令行提示符(cmd或Powershell,以管理员身份)进入安装目录目录下的bin目录. cmd下运行 mysqld --initialize --console,powershell环境则运行.mysqld --initialize --console 如果命令正常执行, 末尾会输出管理员的初始密码,注意复制保存,后面要用.
MySQL会在安装目录下新建data目录并填写初始化的内容;如果安装目录下data目录有内容,程序会报错(这种情况常见于覆盖安装,因此要提前备份这个目录,然后删除之再执行这一初始化命令)。这个data目录也是数据库所在的目录,可以定期备份。
2. 安装MySQL服务。 运行mysqld install (或powershell下面的.mysqld install), 安装MySQL服务。如果之前安装过MySQL服务则会显示已经存在。如果想删除MySQL服务则在命令行输入命令 sc delete MySQL即可。
3. 启动MySQL服务。为了测试安装是否成功,在命令行输入 net start mysql. 如果安装成功则会显示MySQL 服务正在启动,... MySQL 服务已经成功启动 字样。
以前安装时我碰到一个奇怪的现象,前面一切正常,但这里就是不能正常启动,反复测试都显示“ 服务没有响应调控“这样莫名其妙的错误。后来改用msi格式的安装包重新安装,才发现原因所在,原来是操作系统上少了一个必需的新版VC++ 运行库,这个库可以在MSI安装包运行时,提示之后在线下载,问题就解决了。出现这个问题是因为刚刚重装的操作系统比较老,较早的操作系统中还没有这个运行库。
4. 登录服务器。命令行输入 mysql -h localhost -u root -p,回车后要求输入密码,找出第2步的密码,输入之就成功进入服务器了。
5. 修改初始密码,否则没法进行相应的管理功能。进入MySQL之后,在mysql>提示界面下,输入
alter user "root"@"localhost" identified by "newpassword";
再回车即可。这里newpassword用你选择的新密码来替代,不要依样画葫芦照抄这个字串。注意不要遗漏语句后面的分号,它表示SQL命令的结束。
至此,MySQL安装基本完成了,接下来就是创建数据库的具体操作了,在进入navicat for mySQL之后,新建链接,链接名称随便写,Host为localhost,用户名root,密码为第4步指定的新密码即可,也可以不填,每次连接时输入.
如果之前备份过SQL文件(结构与数据那类). 这里可以打开链接,然后新建一个数据库,其名称与SQL文件中指令的数据库名称一样.然后进入到 这个数据库,再点击Execute SQL file,选择要导入的数据文件就可以了.如果你的SQL文件中保存了数据库的结构与数据的话,转眼就可以顺利的导入了.
为了方便启动数据库并输入密码,我写了一个简短的批处理在Powershell下面运行,
net start mySQL
d:
cd d:greensoftmysql-8.0.23-winx64bin
.mysql -h localhost -u root -p
这样基本上MySQL数据库就恢复好了.如果你是从头开始玩,这时就可以选中数据库,在里面建立新表或查询等.详细内容属于navicat这类数据库管理工具的操作,大体都相似,就不一一展开了。
安装Python环境的一些备忘:
下载Python 3.9.1的安装版本,直接安装,这个不多讲,很简单.注意让Python的路径加入到 系统的路径中,以使于随时随地可以运行python.
在命令行下,输入pip install xxx, xxx为你想安装的Python模块名称。但Python安装时默认的源是国外的,在国内访问速度很慢,因此建议安装完Python之后,第一件事就是修改 源,操作如下:
Python使用清华大学的源:
Python扩展模块默认使用的是国外的库,下载速度相当慢,国内使用清华大学的镜像库速度比较好,需要设置一下索引的地址,记在这里备忘:
命令行输入: pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
结果是 Writing to C:UsersAdministratorAppDataRoamingpippip.ini,就可以了。
如果你使用其它源,修改上面相应的地址就好。
几个我安装的模块:
我的学习中用到了以下几个模块:
numpy, matplotlib, pandas, pymysql, scipy, xlwings, sympy,pip-review 还有一些模块是安装他们而带来的。
numpy, pandas,matplotlib是数据库学习用的,xlwings是操作Excel的,pymysql是访问MySQL的,scipy和sympy是科学计算用的。pip-review是为了一次性更新所有模块用的。
xlwings模块
其中xlwings模块是连接Excel与Python的桥梁,安装这个模块之后,还需要进一步处理,
在cmd中输入 xlwings addin install --unprotected
进行插件安装,使得Excel可以加载xlwings的相关模块,这样Excel中才能调用。从实现的细节来看,Python代码经过包装之后,在VBA是一个一个的函数或过程。Excel通过调用VBA程序来呼叫Python代码。
通过上述安装方式安装的插件,xlwings的VBA模块是没有加密码的,可以查看细节或调试。
还有一个之前提到过的细节,要勾选“信任对VBA工程对象模型的访问”,并启用宏,否则VBA导入Python代码时会发生错误,因为导入Python代码的过程实质是上用VBA函数或过程包装了这些Python代码,这些导入的内容放在VBA工程下面的模块中,没有访问工程对象模型的信任操作就无法进行了。
如果要安装ipython或jupyter,可能会带来更多的模块,不展开。