Python如何实现MySQL实例初始化详解


Posted in Python onNovember 06, 2017

前言

相信每位程序员对mysql应该都不陌生,MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。我们在日常开发中少不了要接触mysql。

腾讯云上的mysql实例,初始化的时候,需要自己点击“初始化按钮”,然后还要手动输入16位复杂的密码,这个操作比较繁琐,而且如果你一次建立多个实例,这个操作量就很大了,所以必须想办法提高效率,于是就有了下文,批量调用sdk api来实现。

本文主要给大家介绍了关于Python实现MySQL实例初始化的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

示例代码

代码准备:initstance.py

#!/usr/bin/python
 from src.QcloudApi.qcloudapi import QcloudApi
 from time import ctime,sleep
 from getpwd import get_password

 def initinstance(cdbid,no):
 module = 'cdb'
 action = 'CdbMysqlInit'
 config = {
  'Region': 'ap-shanghai',
  'secretId': 'AKIDTsEEl8ZK9mHcotf4OYk2A7uYxxxxxxxx',
  'secretKey': 'IOI0Zw87vYDvhR6a5QZXouomxxxxxxxx',
  'method': 'get'
 }

 pwd=get_password(16)
 params = {
  'cdbInstanceId': cdbid,
  'charset': 'utf8mb4',
  'port': 3306,
  'lowerCaseTableNames': 1,
  'password': pwd
 }

 print params
 try:
  service = QcloudApi(module, config)
  print service.generateUrl(action, params)
  print service.call(action, params)
 except Exception, e:
  print 'exception:', e

 def main():
 # 这里添加 N多实例id,可以批量进行初始化,不用再界面点击操作了。
 cdbids_hermes=["cdb-1hz14ogho","cdb-1417ds7su"]
 for index,value in enumerate(cdbids_hermes):
  initinstance(value,str((index+1)).zfill(2))
  sleep(1)

 if __name__ == '__main__':
 main()

初始化实例脚本initstance.py,准备执行代码:

调试报错,需要安装qcloudapi-sdk-python-master.zip

[hy@orcl ] /data0/dbj1st$ python initstance.py 
 Traceback (most recent call last):
 File "initstance.py", line 2, in <module>
 from src.QcloudApi.qcloudapi import QcloudApi
 ImportError: No module named src.QcloudApi.qcloudapi
 [hy@orcl ] /data0/dbj1st$ 

 [hy@orcl ] /data0/dbj1st/promotion$ unzip qcloudapi-sdk-python-master.zip 
 Archive: qcloudapi-sdk-python-master.zip
 e6cb9ff252cdb125e516525a2bb62d3410723adf
 creating: qcloudapi-sdk-python-master/
 extracting: qcloudapi-sdk-python-master/.gitignore 
 inflating: qcloudapi-sdk-python-master/README.md 
 inflating: qcloudapi-sdk-python-master/demo.py 
 creating: qcloudapi-sdk-python-master/src/
 creating: qcloudapi-sdk-python-master/src/QcloudApi/
 extracting: qcloudapi-sdk-python-master/src/QcloudApi/__init__.py 
 creating: qcloudapi-sdk-python-master/src/QcloudApi/common/
 extracting: qcloudapi-sdk-python-master/src/QcloudApi/common/__init__.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/common/request.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/common/sign.py 
 creating: qcloudapi-sdk-python-master/src/QcloudApi/modules/
 extracting: qcloudapi-sdk-python-master/src/QcloudApi/modules/__init__.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/account.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/base.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/bill.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/bm.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/cbs.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/cdb.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/cdn.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/cmem.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/cvm.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/dfw.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/eip.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/image.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/lb.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/live.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/market.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/monitor.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/redis.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/scaling.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/sec.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/snapshot.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/tdsql.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/trade.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/vod.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/vpc.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/wenzhi.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/modules/yunsou.py 
 inflating: qcloudapi-sdk-python-master/src/QcloudApi/qcloudapi.py 
 extracting: qcloudapi-sdk-python-master/src/__init__.py 
 [hy@orcl ] /data0/dbj1st/promotion$ ll
 [hy@orcl ] /data0/dbj1st/promotion$ cp -r qcloudapi-sdk-python-master/src .
 [hy@orcl ] /data0/dbj1st/promotion$

需要安装cassdk

[hy@orcl ] /data0/dbj1st/promotion$ python initstance.py 
 6
 exception: No module named requests
 [hy@orcl ] /data0/dbj1st/promotion$ 
 [hy@orcl ] /data0/dbj1st/promotion$ 
 [hy@orcl ] /data0/dbj1st/promotion$ sudo su
 [root@dbj4st] /data0/dbj1st/promotion$ pip install cassdk
 Collecting cassdk
 Downloading cassdk-1.0.2.tar.gz
 Building wheels for collected packages: cassdk
 Running setup.py bdist_wheel for cassdk ... error
 Complete output from command /bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-1_XMv6/cassdk/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpzGF2_Dpip-wheel- --python-tag cp27:
 usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
  or: -c --help [cmd1 cmd2 ...]
  or: -c --help-commands
  or: -c cmd --help

 error: invalid command 'bdist_wheel'

 ----------------------------------------
 Failed building wheel for cassdk
 Running setup.py clean for cassdk
 Failed to build cassdk
 Installing collected packages: cassdk
 Running setup.py install for cassdk ... done
 Successfully installed cassdk-1.0.2
 [root@dbj4st] /data0/dbj1st/promotion$

需要安装requests

[hy@orcl ] /data0/dbj1st/promotion$ python initstance.py 
 6
 exception: No module named requests
 [hy@orcl ] /data0/dbj1st/promotion$ sudo su
 [root@dbj4st] /data0/dbj1st/promotion$ sudo pip install --upgrade urllib3
 Collecting urllib3
 Downloading urllib3-1.22-py2.py3-none-any.whl (132kB)
 100% |????????????????????????????????| 133kB 186kB/s 
 Installing collected packages: urllib3
 Successfully installed urllib3-1.22
 [root@dbj4st] /data0/dbj1st/promotion$ 

 [hy@orcl ] /data0/dbj1st/promotion$ sudo su
 [root@dbj4st] /data0/dbj1st/promotion$ sudo pip install --upgrade requests
 Collecting requests
 Downloading requests-2.18.4-py2.py3-none-any.whl (88kB)
 100% |????????????????????????????????| 92kB 9.9kB/s 
 Collecting certifi>=2017.4.17 (from requests)
 Downloading certifi-2017.7.27.1-py2.py3-none-any.whl (349kB)
 100% |????????????????????????????????| 358kB 36kB/s 
 Collecting chardet<3.1.0,>=3.0.2 (from requests)
 Downloading chardet-3.0.4-py2.py3-none-any.whl (133kB)
 100% |????????????????????????????????| 143kB 18kB/s 
 Collecting idna<2.7,>=2.5 (from requests)
 Downloading idna-2.6-py2.py3-none-any.whl (56kB)
 100% |????????????????????????????????| 61kB 16kB/s 
 Requirement already up-to-date: urllib3<1.23,>=1.21.1 in /usr/lib/python2.7/site-packages (from requests)
 Installing collected packages: certifi, chardet, idna, requests
 Found existing installation: chardet 2.2.1
 Uninstalling chardet-2.2.1:
  Successfully uninstalled chardet-2.2.1
 Successfully installed certifi-2017.7.27.1 chardet-3.0.4 idna-2.6 requests-2.18.4
 [root@dbj4st] /data0/dbj1st/promotion$

需要安装DependencyWarning

[laobanzhang@dbj1st] ~/dbj1st/promotion$ python initstance.py 
 6
 exception: cannot import name DependencyWarning
 [laobanzhang@dbj1st] ~/dbj1st/promotion$

OK,执行成功:

[hy@orcl ] /data0/dbj1st/promotion$ python initstance.py 
 6
 7
 {"code":0,"message":"","codeDesc":"Success","jobId":51783}
 [hy@orcl ] /data0/dbj1st/promotion$

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
使用Python标准库中的wave模块绘制乐谱的简单教程
Mar 30 Python
Python检测一个对象是否为字符串类的方法
May 21 Python
python各种语言间时间的转化实现代码
Mar 23 Python
Python的面向对象编程方式学习笔记
Jul 12 Python
Win10下Python环境搭建与配置教程
Nov 18 Python
python+matplotlib绘制旋转椭圆实例代码
Jan 12 Python
Python实现检测文件MD5值的方法示例
Apr 11 Python
python安装pywin32clipboard的操作方法
Jan 24 Python
通过PHP与Python代码对比的语法差异详解
Jul 10 Python
python实现的config文件读写功能示例
Sep 24 Python
使用Python实现微信拍一拍功能的思路代码
Jul 09 Python
Django项目创建及管理实现流程详解
Oct 13 Python
django rest framework之请求与响应(详解)
Nov 06 #Python
基于python中的TCP及UDP(详解)
Nov 06 #Python
利用Python循环(包括while&amp;for)各种打印九九乘法表的实例
Nov 06 #Python
利用Tkinter和matplotlib两种方式画饼状图的实例
Nov 06 #Python
django实现登录时候输入密码错误5次锁定用户十分钟
Nov 05 #Python
用Python登录好友QQ空间点赞的示例代码
Nov 04 #Python
Python通过命令开启http.server服务器的方法
Nov 04 #Python
You might like
教你如何开启shopnc b2b2c 伪静态
2014/10/21 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
2018/04/21 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
javascript replace方法与正则表达式
2008/02/19 Javascript
分享十五个最佳jQuery 幻灯插件和教程
2010/03/27 Javascript
jQuery中filter(),not(),split()使用方法
2010/07/06 Javascript
JS函数实现动态添加CSS样式表文件
2012/12/15 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
js Calender控件使用详解
2015/01/05 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
[02:25]DOTA2英雄基础教程 虚空假面
2014/01/02 DOTA
[33:39]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第二局
2016/02/27 DOTA
[39:00]Optic vs VP 2018国际邀请赛淘汰赛BO3 第三场 8.24
2018/08/25 DOTA
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
使用python绘制常用的图表
2016/08/27 Python
Python字典数据对象拆分的简单实现方法
2017/12/05 Python
通过python顺序修改文件名字的方法
2018/07/11 Python
Python生成器generator用法示例
2018/08/10 Python
解决TensorFlow模型恢复报错的问题
2020/02/06 Python
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
Gweniss格温妮丝女包官网:英国纯手工制造潮流包包品牌
2018/02/07 全球购物
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
琳达·法罗眼镜英国官网:Linda Farrow英国
2021/01/19 全球购物
CNC数控操作工岗位职责
2013/11/19 职场文书
小学教师听课制度
2014/02/01 职场文书
网络研修随笔感言
2014/02/17 职场文书
业务员自荐信范文
2014/04/20 职场文书
学前班语言教学计划
2015/01/20 职场文书
2016年元旦主持词
2015/07/06 职场文书
技术转让协议书
2016/03/19 职场文书
Python中快速掌握Data Frame的常用操作
2021/03/31 Python
nginx处理http请求实现过程解析
2021/03/31 Servers