国产探花免费观看_亚洲丰满少妇自慰呻吟_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)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武义县| 常德市| 博罗县| 斗六市| 芒康县| 囊谦县| 澄江县| 郯城县| 兴和县| 西和县| 额济纳旗| 淮安市| 浦东新区| 平江县| 工布江达县| 长沙市| 晋州市| 宁晋县| 类乌齐县| 耿马| 湘潭县| 商河县| 甘德县| 临邑县| 淳化县| 翁牛特旗| 普安县| 容城县| 陆川县| 上思县| 郧西县| 定边县| 麻阳| 鄂托克前旗| 桦南县| 商都县| 连云港市| 肥城市| 布尔津县| 梅州市| 鱼台县|