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每隔N秒运行指定函数的方法
Mar 16 Python
python实现合并两个数组的方法
May 16 Python
Python中二维列表如何获取子区域元素的组成
Jan 19 Python
利用Python实现Windows定时关机功能
Mar 21 Python
Anaconda入门使用总结
Apr 05 Python
使用Python进行QQ批量登录的实例代码
Jun 11 Python
python3实现随机数
Jun 25 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
Jan 20 Python
详解python中groupby函数通俗易懂
May 14 Python
python 实现PIL模块在图片画线写字
May 16 Python
jupyter notebook运行命令显示[*](解决办法)
May 18 Python
Python实现为PDF去除水印的示例代码
Apr 03 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模块memcache和memcached区别分析
2011/06/14 PHP
php比较多维数组中值的大小排序实现代码
2012/09/08 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
面向对象设计模式的核心法则
2013/11/10 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
instanceof和typeof运算符的区别详解
2014/01/06 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
2017/04/19 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
2019/02/27 jQuery
js+canvas实现五子棋小游戏
2020/08/02 Javascript
Python ORM框架SQLAlchemy学习笔记之数据查询实例
2014/06/10 Python
谈谈如何手动释放Python的内存
2016/12/17 Python
Python有序字典简单实现方法示例
2017/09/28 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
python版本五子棋的实现代码
2018/12/11 Python
python requests post多层字典的方法
2018/12/27 Python
PyTorch预训练的实现
2019/09/18 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
python实现与redis交互操作详解
2020/04/21 Python
python 实现超级玛丽游戏
2020/11/25 Python
大学学年自我鉴定
2013/10/28 职场文书
绿色城市实施方案
2014/03/19 职场文书
优秀员工评优方案
2014/06/13 职场文书
校庆口号
2014/06/20 职场文书
三峡大坝导游词
2015/01/31 职场文书
2015幼儿园新学期寄语
2015/02/27 职场文书
房租涨价通知
2015/04/23 职场文书
2015年市场部工作总结
2015/04/30 职场文书
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js