python mysql实例_Python如何实现MySQL实例初始化详解_weixin_39633165的博客-程序员秘密

技术标签: python mysql实例  

前言

相信每位程序员对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

[[email protected] ] /data0/dbj1st$ python initstance.py

Traceback (most recent call last):

File "initstance.py", line 2, in

from src.QcloudApi.qcloudapi import QcloudApi

ImportError: No module named src.QcloudApi.qcloudapi

[[email protected] ] /data0/dbj1st$

[[email protected] ] /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

[[email protected] ] /data0/dbj1st/promotion$ ll

[[email protected] ] /data0/dbj1st/promotion$ cp -r qcloudapi-sdk-python-master/src .

[[email protected] ] /data0/dbj1st/promotion$

需要安装cassdk

[[email protected] ] /data0/dbj1st/promotion$ python initstance.py

6

exception: No module named requests

[[email protected] ] /data0/dbj1st/promotion$

[[email protected] ] /data0/dbj1st/promotion$

[[email protected] ] /data0/dbj1st/promotion$ sudo su

[[email protected]] /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

[[email protected]] /data0/dbj1st/promotion$

需要安装requests

[[email protected] ] /data0/dbj1st/promotion$ python initstance.py

6

exception: No module named requests

[[email protected] ] /data0/dbj1st/promotion$ sudo su

[[email protected]] /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

[[email protected]] /data0/dbj1st/promotion$

[[email protected] ] /data0/dbj1st/promotion$ sudo su

[[email protected]] /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

[[email protected]] /data0/dbj1st/promotion$

需要安装DependencyWarning

[[email protected]] ~/dbj1st/promotion$ python initstance.py

6

exception: cannot import name DependencyWarning

[[email protected]] ~/dbj1st/promotion$

OK,执行成功:

[[email protected] ] /data0/dbj1st/promotion$ python initstance.py

6

7

{"code":0,"message":"","codeDesc":"Success","jobId":51783}

[[email protected] ] /data0/dbj1st/promotion$

总结

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39633165/article/details/110333167

智能推荐

linux驱动中断处理_tasklet部分_高个子叔叔的博客-程序员秘密

在编写设备驱动时, tasklet 机制是一种比较常见的机制,通常用于减少中断处理的时间,将本应该是在中断服务程序中完成的任务转化成软中断完成。 为了最大程度的避免中断处理时间过长而导致中断丢失,有时候我们需要把一些在中断处理中不是非常紧急的任务放在后面执行,而让中断处理程序尽快返回。在老版本的 linux 中通常将中断处理分为 top half handler 、 bottom half h

eval(String)函数_eval strings_认真的学生的博客-程序员秘密

eval(String)函数可计算某个字符串,并执行其中的JavaScript代码。返回值通过计算string得到的值(如果有的话)。说明:该方法只接受原始字符串作为参数,如果String参数不是原始字符串,那么该方法将不做任何改变的返回。因此请不要为eval()函数传递String对象来作为参数。如果试图覆盖eval属性或把eval()方法赋予另一个属性,并通过该属性调用它,

Vue-案例(布局切换)_vue布局切换_若叶-知秋的博客-程序员秘密

&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;html lang=&quot;en&quot;&amp;gt;&amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt; &amp;lt;title&amp;gt;Title&amp;lt;/title&amp;gt; &amp;lt;script src=&quot;../node_modules/vue/dist/vue.j

JavaScript表单提交_d_a_a_b的博客-程序员秘密

表单的提交首先得知道表单的属性然后捕获表单内容再提交提交又分默认提交和手动提交form表单的属性action 与method属性 值 描述action URL 规定当提交表单时向何处发送表单数据method get/post 规定用于发送form-data的HTTP方法。(提交表单的方式) 提交路径URL可能的值:绝对 URL - 指向其他站点(比如 src="http://www.baidu.com")相对 URL - 指向站点内的文件(比如 src="/Form/getData")获.

linux命令mov,汇编指令_Y-linuz-linux-w_新浪博客_笑以苛的博客-程序员秘密

ARM处理器有37个寄存器,其中31个通用寄存器,6个程序状态寄存器。R0~R7为不分组的通用寄存器,R8~R14为分组寄存器---不同工作模式下寄存器不同R13:指向堆栈栈顶指针SPR14:用作程序链接寄存器LR--指向函数的返回地址R15:程序计数器pc--记录程序运行的位置程序状态寄存器:CPSR:保存程序运行的状态SPSR:只有异常模式存在,保存CPSR的值,又分为SPSR_SVC SPS...

实例妙解Sed和Awk的秘密——Sed高级操作命令_上善若水的博客-程序员秘密

高级操作命令(1) -{ } : 多个sed命令,用;分开高级操作命令(2)-n : 读取下一个输入行(用下一个命令处理)

随便推点

com.google.gson.JsonSyntaxException: java.lang.NumberFormatException:empty String_爱乐写代码的博客-程序员秘密

问题:某时后台给了一个账号,说app登陆不了,而其他账号可以,让帮忙看下什么原因分析:1,异常解释:json语法异常:数字格式化异常:空字符串2,返回结果(其实很复杂,我删除很多字段,只保留重点):{ "resultCode":200, "loginFlag":true, "rows":[ { "NM_STATE":85905, "DEPTORDER":8, "ST_MAJOR":"

React.js学习(八)、React-router-dom使用(简单使用Link)_晓果博客的博客-程序员秘密

下载react-router-domnpm install --save react-router-domindex.js包裹Router//引入react核心库import React from 'react'//引入ReactDOMimport ReactDOM from 'react-dom'//import {BrowserRouter} from 'react-router-dom'//引入Appimport App from './App'ReactDOM.re.

mkisofs参数及用法详解---linux制作ISO启动盘命令_mkisofs制作启动iso镜像_乌托邦2号的博客-程序员秘密

假设你想备份一个叫做 /home/joeuser/ 的目录,但是不想包括子目录 /home/joeuser/junk/,因为其中包括的都是不必要的文件。你想创建一个叫做 backup.iso 的映像,然后把它刻写到 CD-R(W) 去,因而你能够在办公时在你的 Red Hat Linux PC 上使用,旅行时在你的 Windows 便携电脑上使用。这个目的可以通过使用 mkisofs ,运行以下命

iptables只允许指定ip访问本机的指定端口_ZhaoYingChao88的博客-程序员秘密

只允许指定的ip访问本机的指定端口50070:例如允许的的ip:192.168.1.123,192.168.1.124, 192.168.1.100,其他ip都禁止访问。 切换到root用户iptables -F#清除预设表filter中的所有规则链的规则  1、在tcp协议中,禁止所有的ip访问本机的50070端口。iptables -I INPUT -p tcp -

秦岭NDVI动态格局_秦岭山地shp_「已注销」的博客-程序员秘密

第 1页共 33 页 摘 要 连的 NDVI(归一化差分植被指数)数据可以反应地面植被连续的发展变化,建 立连续 NDVI 表面数据可用以监测地面植被环境变化以及探知相应致变因子。 本文以 Landsat 数据提取的 NDVI 和 MODIS 数据下的 NDVI 为基础,分析相应植被 分布及变化趋势,并对相应数据的做实用性分析,并且对比分析。对于秦岭地区的 NDV...

Okhttp请求重定向检测_setinstancefollowredirects_冰河514057946的博客-程序员秘密

HttpURLConnection的重定向处理我们都知道一般的网络框架都是可以在内部自动处理重定向,比如常见的HttpURLConnection,当我们使用HttpURLConnection来处理重定向时,HttpURLConnection提供给一个 ,setInstanceFollowRedirects(true|false)来设置当前的HttpURLConnection是否在内部处理重定向请求设置为true:内部处理重定向,返回最终的响应结果,调用方得到最终的code为200设置为false

推荐文章

热门文章

相关标签