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脚本实现DNSPod DNS动态解析域名
Feb 14 Python
在Python的Flask框架中实现全文搜索功能
Apr 20 Python
Python中第三方库Requests库的高级用法详解
Mar 12 Python
Python zip()函数用法实例分析
Mar 17 Python
用python一行代码得到数组中某个元素的个数方法
Jan 28 Python
详解Python基础random模块随机数的生成
Mar 23 Python
Python3.5面向对象程序设计之类的继承和多态详解
Apr 24 Python
bluepy 一款python封装的BLE利器简单介绍
Jun 25 Python
python 实现矩阵按对角线打印
Nov 29 Python
Python Django view 两种return的实现方式
Mar 16 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
Jun 23 Python
python图片灰度化处理的几种方法
Jun 23 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
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
javascript 函数使用说明
2010/04/07 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
jQuery 1.9.1源码分析系列(十四)之常用jQuery工具
2015/12/02 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
AngularJS入门教程之AngularJS模型
2016/04/18 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
2016/10/04 Javascript
Vue2.0父组件与子组件之间的事件发射与接收实例代码
2017/09/19 Javascript
nodejs使用express获取get和post传值及session验证的方法
2017/11/09 NodeJs
基于jQuery使用Ajax动态执行模糊查询功能
2018/07/05 jQuery
微信小程序开发常见问题及解决方案
2019/07/11 Javascript
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
matplotlib在python上绘制3D散点图实例详解
2017/12/09 Python
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
英国最大的高品质珠宝和手表专家:Goldsmiths
2017/03/11 全球购物
平面设计师工作职责范文
2013/12/03 职场文书
公司业务员岗位职责
2014/03/18 职场文书
三好生演讲稿
2014/09/12 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
爱心捐助活动总结
2015/05/09 职场文书
员工手册编写范本
2015/05/14 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书
医院岗前培训心得体会
2016/01/08 职场文书
golang switch语句的灵活写法介绍
2021/05/06 Golang
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python