数据库迁移(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用户的方法相关推荐

  1. python调用api接口获取数据_python批量爬取NCBI基因注释并调用谷歌API批量翻译

    作者:沙雕学习小组 这里有视频教程:https://www.bilibili.com/video/av87724182 今天想实现这个功能: 差异分析得到了200多个基因(甚至更多) 我要一个一个把基 ...

  2. python抽取某个时间段的数据_python 批量提取excel 指定时间段的数据

    [Python] 纯文本查看 复制代码import pandas as pd import os import datetime path = r'C:\Users\plm\Desktop\text1 ...

  3. mysql访问oracle数据_python访问Oracle及Mysql数据库

    # !/usr/local/python # -*- coding: utf-8 -*- import cx_Oracle import pymysql # --------oracle链接数据库-- ...

  4. java操作Excel之POI(4)利用POI实现数据的批量导出

    后台导出方法: 1 /** 2 * 后台导出方法 3 * 利用POI实现数据的批量导出 4 */ 5 public String export() throws Exception{ 6 Connec ...

  5. 【Python】将微信收藏的文章批量导出为pdf

    [Python]将微信收藏的文章批量导出为pdf 第一步:导出微信收藏的链接 第二步:将所有网址导出为pdf 写在前面 微信收藏了大量的文章,一直没时间看.乘飞机或火车时有闲暇时间但网络不行.本文提供 ...

  6. 基于easyexcel的MySQL百万级别数据的excel导出功能

    前言 最近我做过一个MySQL百万级别数据的excel导出功能,已经正常上线使用了. 这个功能挺有意思的,里面需要注意的细节还真不少,现在拿出来跟大家分享一下,希望对你会有所帮助. 原始需求:用户在U ...

  7. R语言数据导出(数据保存、导出、持久化到本地指定目录文件)、使用foreign包的write.dta函数将dataframe导出为Stata格式dta文件

    R语言数据导出(数据保存.导出.持久化到本地指定目录文件).使用foreign包的write.dta函数将dataframe导出为Stata格式dta文件 目录

  8. R语言数据导出(数据保存、导出、持久化到本地指定目录文件)、保存为txt、csv、tsv、xls、xlsx、dta、sas、sps格式文件

    R语言数据导出(数据保存.导出.持久化到本地指定目录文件).保存为txt.csv.tsv.xls.xlsx.dta.sas.sps格式文件 目录

  9. python从mysql导出大量数据_python从mysql导出数据导excel

    # coding:utf8 import sys reload(sys) sys.setdefaultencoding('utf8') # author: 'zkx' # date: '2018/3/ ...

最新文章

  1. 关于创业公司产品开发原则
  2. 从玉农业智能蔬菜技术 农业大健康·林裕豪:中国金控斥资打造
  3. hdu 1532(最大流)
  4. 操作系统知识点总结以及期末考试考点
  5. 经典C语言程序100例之九八
  6. vue 前端png转pdf_Vue前端HTML保存为PDF的两种常用方式 「干货分享」
  7. php版本kms,通过 AWS KMS API 和 AWS SDK for PHP 版本 3 使用密钥 - 适用于 PHP 的 AWS 开发工具包...
  8. 设计模式的基本原则 + 类与类之间的关系
  9. Linux从用户层到内核层系列 - GNU系列之glibc介绍
  10. 还贷的那些事VI——自由贷的设想
  11. 39期1组,第一个项目感受---------文字与回忆
  12. java蓝桥杯数字黑洞_【蓝桥杯】数字黑洞(5位黑洞数)
  13. cisco rommon 维护路由器
  14. 配置群晖NAS中的cpolar开机自启动 2-2
  15. 乐优商城(三十)——授权中心
  16. arm解锁 j-flash_J-Link固件烧录以及使用J-Flash向arm硬件板下载固件程序(示例代码)...
  17. Redis实现点赞与关注
  18. 几种背包问题(java实现)
  19. 蓝汛之,关于硬件设计导致的RF干扰GND导致产生的底噪问题【篇】
  20. vue+elementUI中使用Echarts (懒人无脑版)

热门文章

  1. 第二章 Spark RDD以及编程接口
  2. GitHub超实用操作
  3. 腾讯计费全面开放,为你而来!
  4. celery定时任务简单使用
  5. Undefined Reference to Typeinfo
  6. QT开发的程序的发布
  7. Vue010_ 过滤器
  8. kafka消费速度跟不上生产速度的解决方案!
  9. leetcode 332. Reconstruct Itinerary | 332. 重新安排行程(Java)
  10. leetcode 263, 264, 1201, 313. Ugly Number I, II, III, Super Ugly Number(leetcode 丑数问题合集)