使用mysqldump导出数据
如何修改mysql数据库名称
需要将数据库名称
old_db
想改名为new_db
- MySQL修改数据库名称比较麻烦,不支持直接修改,需要通过其它方式间接达到修改数据库名称的目的。
- 在 MySQL 5.1.23 之前的旧版本中,我们可以使用
RENAME DATABASE
来重命名数据库,但此后版本,因为安全考虑,删掉了这一条命令。
先导出数据,再导入数据
当数据库体积比较小时,最快的方法是使用mysqldump
命令来创建整个数据库的转存副本,然后新建数据库,再把副本导入到新数据库中。
先创建数据库
create database new_db; |
使用mysqldump导出数据
mysqldump -uroot -p123456 --set-gtid-purged=OFF old_db > /tmp/old_db.sql |
仅是做普通的本机备份恢复时,可以添加--set-gtid-purged=OFF
参数,作用是在备份时候不出现GTID信息。
导入数据到新库
mysql -uroot -p123456 new_db < /tmp/old_db.sql |
使用mysqldump导出和导入数据
导出整个数据
mysqldump -u 用户名 -p 数据库名 > 导出的文件名 |
导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 |
导出一个数据库结构
mysqldump -u dbuser -p -d --add-drop-table dbname >d:/dbname_db.sql |
-d
没有数据 --add-drop-table
在每个create
语句之前增加一个drop table
。
导入数据库
常用source
命令进入mysql
数据库控制台,如
> mysql -uroot -proot |
然后使用source
命令,后面参数为脚本文件(如这里用到的.sql),source d:/dbname.sql
。
在docker中操作
用root用户进入容器:
docker exec -it -u root containerId bash |
进入容器之后使用上面的mysql相关指令进行操作即可。
从容器中导出到本地计算机
sudo docker cp feb39d3faffb:/etc/bash.bashrc ~/Downloads |
或者反过来
sudo docker cp /tmp/index.html feb39d3faffb:/etc/ |