zoukankan      html  css  js  c++  java
  • MySQL的数据备份以及pymysql的使用

    一、MySQL的数据备份

    语法:
    # mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql
    
    #示例:
    #单库备份
    mysqldump -uroot -p123 db1 > db1.sql
    mysqldump -uroot -p123 db1 table1 table2 > db1-table1-table2.sql
    
    #多库备份
    mysqldump -uroot -p123 --databases db1 db2 mysql db3 > db1_db2_mysql_db3.sql
    
    #备份所有库
    mysqldump -uroot -p123 --all-databases > all.sql

    MYsql的数据备份
         备份与恢复操作:

    如:

           mysqldump - uroot day43 > E:\day43.sql
        drop database day43; 删除原先的文件夹

       show databases; 查看全部的文件夹

      create database day43; 创建一个文件夹

     use day43; 切换到day43这个文件夹下
    source E:\day43.sql; 恢复数据

    mysqldump - uroot day51 > D:\day51.sql
    1、登录MySQL恢复:
    drop database day51;
    create database day51;
    source D:\day51.sql;

    2、不登录MySQL直接在外面恢复;
    mysql -uroot day51 < D:\day51.sql

    (2)、恢复到指定的库中:
    create database bak; 新建一个文件夹
    use dak; 切换到dak这个文件夹下
    mysql -uroot bak < D:\day51.sql; 恢复数据

    只备份一个表
    mysqldump - uroot day51 deparment > D:\day51-deparment.sql
    MySQL 进数据库
    create database bakl; 新建一个库
    quit 退出
    在mysql外面恢复
    mysql -uroot bakl < D:\day51-deparment.sql
    nysql 进数据库
    use bakl 切换到dakl这个文件夹下

    直接在数据库外面查看
    mysql -uroot -e "use bakl"
    mysql -uroot -e "use bakl;show tables;"

     

    备份多个库
    mysqldump -uroot -e "show databases;" 查看全部的库

    备份
    mysqldump -uroot --databases db1 db2 db3 > E:\db1-db2-db3.sql

    MySQL         进数据库

    删除原来的文件夹

    quit 退出

    在外面查看
    mysql -uroot < E:\db1-db2-db3.sql 恢复数据库
    mysqldump -uroot -e "show databases;"

    备份所有库
    mysqldump -uroot --all-databases > E:\all.sql

    二、表的导出和导入

     

    表的导出和导入

    (show variables like '%secur%';查看选项)
    导出
    use day51; 切换到day51下面
    show tables; 查看表
    select * from userinfo; 查看表下的文件夹

     

    select * from userinfo into outfile 'E:\userinfo.txt' fields terminated by ','lines terminated by ' '; 导出

     


    导入
    create table user(
    id int primary key auto_increment,
    name char(32),
    age int,
    deparment_id int);      建表

    load data infile 'E:\userinfo.txt'
    into table user fields terminated by ','lines terminated by ' '; 导入

     

     三、 pymysql模块

    #安装
    pip3 install pymysql

    (1) 链接、执行sql、关闭(游标)

    1 基本使用
    # import pymysql
    # #mysql -h localhost -uroot -p123
    # conn=pymysql.connect(host='localhost',user='root',password='',database='day47')
    # cursor=conn.cursor() #拿到游标,即mysql >
    #
    # sql='select * from user where id>1;'
    # rows=cursor.execute(sql) #拿到受影响的行数
    # print('%s rows in set (0.00 sec)' %rows)
    #
    # cursor.close()
    # conn.close()
    1.小练习
    import
    pymysql user=input('用户名>>: ').strip() pwd=input('密码>>: ').strip() #链接,拿到游标 conn=pymysql.connect(host='localhost',user='root',password='',database='day47') cursor=conn.cursor() #拿到游标,即mysql > #执行sql sql='select * from user where user="%s" and password="%s";' %(user,pwd) print(sql) rows=cursor.execute(sql) #拿到受影响的行数 # print('%s rows in set (0.00 sec)' %rows) cursor.close() conn.close() if rows: print('登录成功') else: print('登录失败')
    #3:sql注入
    import pymysql
    user=input('用户名>>: ').strip()
    pwd=input('密码>>: ').strip()
    conn=pymysql.connect(host='localhost',user='root',password='',database='day47')
    cursor=conn.cursor()
    
    sql='select * from user where user="%s" and password="%s";' %(user,pwd)
    print(sql)
    rows=cursor.execute(sql)
    cursor.close()
    conn.close()
    if rows:
        print('登录成功')
    else:
        print('登录失败')
    3:解决sql注入
    import pymysql
    user=input('用户名>>: ').strip()
    pwd=input('密码>>: ').strip()
    conn=pymysql.connect(host='localhost',user='root',password='',database='day47')
    cursor=conn.cursor()
    
    sql='select * from user where user=%s and password=%s;'
    rows=cursor.execute(sql,[user,pwd])
    print(rows)
    cursor.close()
    conn.close()
    if rows:
        print('登录成功')
    else:
        print('登录失败')
    4 增删改
    import pymysql
    conn=pymysql.connect(host='localhost',user='root',password='',database='day47',charset='utf8')
    cursor=conn.cursor()
    
    
    sql='insert into user(user,password) values(%s,%s);'
    rows=cursor.execute(sql,('alex','123'))
    rows=cursor.executemany(sql,[('yuanhao','123'),('laowu','123'),('kgf','12323')])
    print('%s row in set (0.00 sec)' %rows)
    conn.commit()
    
    cursor.close()
    conn.close()
    5 查:fetchone,fetchmany,fetchall
    import pymysql
    conn=pymysql.connect(host='localhost',user='root',password='',database='day47',charset='utf8')
    cursor=conn.cursor()
    sql='select * from user;'
    rows=cursor.execute(sql)
    查单条
    res1=cursor.fetchone()
    res2=cursor.fetchone()
    res3=cursor.fetchone()
    print(res1[0])
    print(res2)
    print(res3)
    
    查多条
    print(cursor.fetchmany(3))
    print(cursor.fetchone())
    
    查所有
    print(cursor.fetchall())
    print(cursor.fetchone())
    
    光标的移动
    print(cursor.fetchall())
    cursor.scroll(1,mode='absolute')
    print(cursor.fetchone())
    cursor.scroll(3,mode='absolute')
    print(cursor.fetchone())
    
    print(cursor.fetchone())
    print(cursor.fetchone())
    cursor.scroll(-2,mode='relative')
    print(cursor.fetchone())
    
    print('%s row in set (0.00 sec)' %rows)
    cursor.close()
    conn.close()

    四、获取插入的最后一条数据的自增ID

    复制代码
    import pymysql
    conn=pymysql.connect(host='localhost',user='root',password='123',database='egon')
    cursor=conn.cursor()
    
    sql='insert into userinfo(name,password) values("xxx","123");'
    rows=cursor.execute(sql)
    
    conn.commit()
    print(cursor.lastrowid) #在commit之前和之后都可以查看
    cursor.close()
    conn.close()
  • 相关阅读:
    ORACLE字符集基础知识
    Outlook 2013 在邮件里面点击超链接时弹出“组织策略阻止我们为您完成此操作”
    Apache Kafka: 优化部署的10个最佳实践
    经济学人使用Golang构建微服务历程回顾
    如何做自己的服务监控?spring boot 2.x服务监控揭秘
    web框架的前生今世--从servlet到spring mvc到spring boot
    如何做自己的服务监控?spring boot 1.x服务监控揭秘
    手机上不了网
    Cross-Browser, Event-based, Element Resize Detection(转)
    迷你MVVM框架 avalonjs 组件编写指南
  • 原文地址:https://www.cnblogs.com/mengqingjian/p/7522374.html
Copyright © 2011-2022 走看看