如何修改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 dbuser -p dbname > dbname.sql

导出一个表

mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u dbuser -p dbname users> dbname_users.sql

导出一个数据库结构

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
> use 数据库

然后使用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/