python从mysql导出大量数据_python批量导出导入MySQL用户的方法
数据库迁移(A -> B),需要把用户也迁移过去,而用户表(mysql.user)有上百个用户。有2种方法进行快速迁移:
1,在同版本的条件下,直接备份A服务器的mysql数据库,还原到B服务器。
2,要是不同版本的数据(5.1 -> 5.5),很可能mysql数据库下面的一些表结构,甚至表数据的默认值都不一样,按照1的方法进行迁移,虽然最后也是可以正常访问,但是还是有些不太放心,很可能会影响到了B服务器上的MySQL,这样就需要用命令行来生成帐号了,这样是最安全和放心的。
下面用python脚本来进行批量导出:
#!/bin/env python
# -*- encoding: utf-8 -*-
#-----------------------------------------
# Name: mysql_user_dump.py
# Purpose: 批量导出用户
# Author: zhoujy
# Created: 2013-05-28
# edit: www.jbxue.com
#-----------------------------------------
import MySQLdb
def get_data(conn):
query = 'select user,host from mysql.user order by user'
cursor = conn.cursor()
cursor.execute(query)
lines = cursor.fetchall()
return lines
def output_data(conn,rows):
for user,host in rows:
query = "show grants for '%s'@'%s'" %(user,host)
cursor = conn.cursor()
cursor.execute(query)
show_pri = cursor.fetchall()
for grants_command in show_pri:
print ''.join(grants_command)+';'
print ''
if __name__ =='__main__':
conn = MySQLdb.connect(host='localhost',user='root',passwd='123456',db='mysql',port=3306,charset='utf8')
rows = get_data(conn)
output_data(conn,rows)
运行:python mysql_user_dump.py
GRANT REPLICATION SLAVE ON *.* TO 'rep'@'192.168.234.%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.234.%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';
GRANT USAGE ON *.* TO 'test'@'192.168.234.%' IDENTIFIED BY PASSWORD '*2A032F7C5BA932872F0F045E0CF6B53CF702F2C5';
GRANT SELECT, INSERT, UPDATE, DELETE ON `test`.* TO 'test'@'192.168.234.%';
GRANT USAGE ON *.* TO 'zzz_test'@'192.168.234.%' IDENTIFIED BY PASSWORD '*2A032F7C5BA932872F0F045E0CF6B53CF702F2C5';
GRANT SELECT, INSERT, UPDATE, DELETE ON `zzz%`.* TO 'zzz_test'@'192.168.234.%';
最后把这些命令在B上面执行就好了,也可以在执行脚本的时候重定向到一个sql文件:如:user.sql,在到B服务器的数据库里面执行source user.sql 就完成了导入工作。
第2个方法最好,不需要1里面的删表和重建表的操作,最安全。
python从mysql导出大量数据_python批量导出导入MySQL用户的方法相关推荐
- python调用api接口获取数据_python批量爬取NCBI基因注释并调用谷歌API批量翻译
作者:沙雕学习小组 这里有视频教程:https://www.bilibili.com/video/av87724182 今天想实现这个功能: 差异分析得到了200多个基因(甚至更多) 我要一个一个把基 ...
- python抽取某个时间段的数据_python 批量提取excel 指定时间段的数据
[Python] 纯文本查看 复制代码import pandas as pd import os import datetime path = r'C:\Users\plm\Desktop\text1 ...
- mysql访问oracle数据_python访问Oracle及Mysql数据库
# !/usr/local/python # -*- coding: utf-8 -*- import cx_Oracle import pymysql # --------oracle链接数据库-- ...
- java操作Excel之POI(4)利用POI实现数据的批量导出
后台导出方法: 1 /** 2 * 后台导出方法 3 * 利用POI实现数据的批量导出 4 */ 5 public String export() throws Exception{ 6 Connec ...
- 【Python】将微信收藏的文章批量导出为pdf
[Python]将微信收藏的文章批量导出为pdf 第一步:导出微信收藏的链接 第二步:将所有网址导出为pdf 写在前面 微信收藏了大量的文章,一直没时间看.乘飞机或火车时有闲暇时间但网络不行.本文提供 ...
- 基于easyexcel的MySQL百万级别数据的excel导出功能
前言 最近我做过一个MySQL百万级别数据的excel导出功能,已经正常上线使用了. 这个功能挺有意思的,里面需要注意的细节还真不少,现在拿出来跟大家分享一下,希望对你会有所帮助. 原始需求:用户在U ...
- R语言数据导出(数据保存、导出、持久化到本地指定目录文件)、使用foreign包的write.dta函数将dataframe导出为Stata格式dta文件
R语言数据导出(数据保存.导出.持久化到本地指定目录文件).使用foreign包的write.dta函数将dataframe导出为Stata格式dta文件 目录
- R语言数据导出(数据保存、导出、持久化到本地指定目录文件)、保存为txt、csv、tsv、xls、xlsx、dta、sas、sps格式文件
R语言数据导出(数据保存.导出.持久化到本地指定目录文件).保存为txt.csv.tsv.xls.xlsx.dta.sas.sps格式文件 目录
- python从mysql导出大量数据_python从mysql导出数据导excel
# coding:utf8 import sys reload(sys) sys.setdefaultencoding('utf8') # author: 'zkx' # date: '2018/3/ ...
最新文章
- 关于创业公司产品开发原则
- 从玉农业智能蔬菜技术 农业大健康·林裕豪:中国金控斥资打造
- hdu 1532(最大流)
- 操作系统知识点总结以及期末考试考点
- 经典C语言程序100例之九八
- vue 前端png转pdf_Vue前端HTML保存为PDF的两种常用方式 「干货分享」
- php版本kms,通过 AWS KMS API 和 AWS SDK for PHP 版本 3 使用密钥 - 适用于 PHP 的 AWS 开发工具包...
- 设计模式的基本原则 + 类与类之间的关系
- Linux从用户层到内核层系列 - GNU系列之glibc介绍
- 还贷的那些事VI——自由贷的设想
- 39期1组,第一个项目感受---------文字与回忆
- java蓝桥杯数字黑洞_【蓝桥杯】数字黑洞(5位黑洞数)
- cisco rommon 维护路由器
- 配置群晖NAS中的cpolar开机自启动 2-2
- 乐优商城(三十)——授权中心
- arm解锁 j-flash_J-Link固件烧录以及使用J-Flash向arm硬件板下载固件程序(示例代码)...
- Redis实现点赞与关注
- 几种背包问题(java实现)
- 蓝汛之,关于硬件设计导致的RF干扰GND导致产生的底噪问题【篇】
- vue+elementUI中使用Echarts (懒人无脑版)
热门文章
- 第二章 Spark RDD以及编程接口
- GitHub超实用操作
- 腾讯计费全面开放,为你而来!
- celery定时任务简单使用
- Undefined Reference to Typeinfo
- QT开发的程序的发布
- Vue010_ 过滤器
- kafka消费速度跟不上生产速度的解决方案!
- leetcode 332. Reconstruct Itinerary | 332. 重新安排行程(Java)
- leetcode 263, 264, 1201, 313. Ugly Number I, II, III, Super Ugly Number(leetcode 丑数问题合集)