国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

Mysql數據遷徙方法工具解析

2024-07-24 12:41:39
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了mysql數據遷徙方法工具解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

數據遷徙是每個后端都會遇到的工作之一,本文介紹了一些常見的數據遷徙方法與工具

mysqldump:數據結構不變的數據遷徙

導出數據

mysqldump -u root -p DATABASE_NAME table_name > dump.sql

恢復數據

mysql -u root -p DATABESE_NAME < dump.sql

或者連接mysql客戶端

mysql> source dump.sql

使用pymysql連接數據庫

可以直接用用戶名密碼連接的數據庫

class GeneralConnector:  def __init__(self, config, return_dic=False):    self.return_dic = return_dic    self.config = config  def __enter__(self):    self.conn = pymysql.connect(**self.config, port=3306)    if self.return_dic:      # 一行數據會變成一個字典      self.cursor = self.conn.cursor(pymysql.cursors.DictCursor)    else:      self.cursor = self.conn.cursor()    return self.cursor  def __exit__(self, *args):    self.cursor.close()    self.conn.commit()    self.conn.close()

使用:

# local_db = {#   'user': 'root',#   'passwd': '',#   'host': '127.0.0.1',#   'db': 'local_db'#   }with GeneralConnector(const.local_db, return_dic=True) as cursor:  cursor.execute('SELECT `col1`, `col2` FROM test;')  return cursor.fetchall()

連接處于需要SSH連接的服務器的數據庫

class SSHConnector:  def __init__(self, server, config, return_dic=False):    self.return_dic=return_dic    self.server = server    self.config = config  def __enter__(self):    self.conn = pymysql.connect(**self.config, port=self.server.local_bind_port)    if self.return_dic:      # 一行數據會變成一個字典      self.cursor = self.conn.cursor(pymysql.cursors.DictCursor)    else:      self.cursor = self.conn.cursor()    return self.cursor  def __exit__(self, *args):    self.cursor.close()    self.conn.commit()    self.conn.close()

使用:

# SERVER = SSHTunnelForwarder(#     (remote_host, ssh_port),#     ssh_username=USERNAME,#     ssh_pkey=SSH_KEY,#     ssh_private_key_password=SSH_KEY_PASSWD,#     remote_bind_address=('127.0.0.1', 3306) # mysql服務位置#   )# server_db = {#   'user': 'root',#   'passwd': '',#   'host': '127.0.0.1',#   'db': 'server_db'#   }# 創建一個隧道將服務端的mysql綁定到本地3306端口with const.SERVER as server:  with SSHConnector(server, const.server_db) as cursor:    cursor.execute('show tables;')    data = cursor.fetchall()    print(data)

cursor的各種操作

1.cursor.execute(sql_statement)

執行一條sql語句

2.cursor.fetchall()

獲取cursor的所有結果,常跟在select語句后使用

3.cursor.fetchone()

獲取cursor的第一條結果

4.cursor.lastrowid

最后一條數據的id

5.cursor.executemany(insert_statement, data_list)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 祥云县| 冕宁县| 三穗县| 自贡市| 江北区| 喀喇沁旗| 大名县| 青海省| 贵阳市| 武鸣县| 石林| 乌海市| 蕉岭县| 民勤县| 兴义市| 兴宁市| 青岛市| 沾化县| 德化县| 宁海县| 离岛区| 民和| 高密市| 巢湖市| 凤城市| 大余县| 饶阳县| 东海县| 郎溪县| 镇原县| 陆丰市| 长宁区| 分宜县| 伊通| 东台市| 贺兰县| 寿阳县| 四川省| 什邡市| 武邑县| 泗阳县|