背景:本地windows 10安装了mysql数据库后,需要把远程库的表结构和数据全部导入进来。
操作:导出数据库,导入数据库。
第一步:导出数据库
使用dump命令即可。
登陆mysql数据库
mysql -hhost --default-character-set=utf8 -u username -p password database_name
连接到数据库,使用mysqldump命令
只导出单个表使用:
mysqldump --skip-lock-tables -u username -p databasename tablename > dump.sql
或者全部库:
mysqldump --skip-lock-tables -u username -p databasename > dump.sql
MySQLdump命令会默认成文件到mysql的bin目录下,如果想自定义可以加盘符。eg:D:\dump.sql
注意:
--skip-lock-tables,MySQL将在备份或复制期间不对表进行加锁。
--column-statistics=0
是MySQL的一个参数,它用于关闭存储引擎收集和存储表列统计信息的功能。默认情况下,启用了此功能,因为它可以帮助优化器更好地选择查询执行计划。但是,在某些情况下,这可能会导致存储空间的浪费,并增加执行UPDATE或DELETE语句时锁定表的时间。通过将该参数设置为0,可以禁用此功能。
如果导入库和导出库使用的字符集不一样则需要指定字符集:--default-character-set=utf8
字符集一定要看清楚,我就这个问题上面搞了很久。
第二步:导入数据库
登陆需要导入的数据库
mysql --default-character-set=utf8 -u username -p password database_name
然后使用source命令
source dump.sql
完事。
如果环境允许的话借助工具更方便:Dbeaver工具里面有一个转储数据和恢复数据。