复制表结构

CREATE TABLE tb_students_copy LIKE tb_students_info;

查询mysql所有表数据、字段信息
mysql 查询表 所有字段
前2种有重复

select COLUMN_NAME,column_comment  from 
information_schema.COLUMNS where table_name = 'db_car_apply'

-- 查询表字段
select COLUMN_NAME from information_schema.COLUMNS 
where table_name = '表名' and table_schema = '数据库名';

-- 查询所有字段, 含约束
SHOW FULL COLUMNS FROM 表名

MySQL中的备份和恢复

加了–single-transaction就能保证innodb的数据是完全一致的,而myisam引擎无法保证,必须加–lock-all-tables
–single-transaction参数的作用,设置事务的隔离级别为可重复读,即REPEATABLE READ,这样能保证在一个事务中所有相同的查询读取到同样的数据,也就大概保证了在dump期间,如果其他innodb引擎的线程修改了表的数据并提交,对该dump线程的数据并无影响
深入理解mysqldump原理 --single-transaction --lock-all-tables --master-data
以下命令不支持powershell(idea系列控制台也是), 支持cmd

  1. 备份所有数据库

    mysqldump -uroot -p --all-database > all.sql

    mysqldump -h localhost -P3306 -uroot -p123456 --single-transaction data docid > F:docid.sql

    mysqlcmd = “/usr/bin/mysqldump -h " + HOST + " -P” + PORT + " -u" + USER + " -p" + PWD +
    " --single-transaction " + DB + " " + TABLE + " > " + db_backup_dir + “/” + backup_file_name

  2. 完全恢复
    mysqldump的恢复也很简单,将备份作为输入执行即可,具体语法如下:

    mysql -h localhost -P3306 -uroot -p123456 data < F:docid.sql

    restorecmd = “/usr/bin/mysql -h " + HOST + " -P” + PORT + " -u" + USER + " -p" + PWD + " " +
    DB + " < " + db_backup_dir + “/” + backup_file_name

注意,将备份恢复后数据并不完整,还需要将备份后执行的日志进行重做,语法如下:

mysqlbinlog binlog-file | mysql -uroot -p

python调用mysqldump备份mysql
最常用MySql数据库备份恢复

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

Logo

本社区面向用户介绍CSDN开发云部门内部产品使用和产品迭代功能,产品功能迭代和产品建议更透明和便捷

更多推荐