菜鸟笔记
提升您的技术认知

Mysql数据库中修改库名的的方法

第一步:查看存储引擎

执行SHOW ENGINES\G指令可列表查看,MySQL 5.6可用的存储引擎有9种(除最后的FEDERATED以外,其他8种都支持),其中默认采用的存储引擎为InnoDB

步骤二:查看默认存储类型

查看系统变量default_storage_engine 的值,确认默认采用的存储引擎是InnoDB

mysql> SHOW VARIABLES LIKE 'default_storage_engine';

步骤三:修改默认存储引擎

Innodb存储引擎的修改方法

方法一:

步骤一,使用mysqldump进行逻辑备份

1)备份MySQL服务器上的所有库

将所有的库备份为mysql-all.sql文件:

  1. [root@dbsvr1 ~]# mysqldump -u root -p --all-databases > /root/alldb.sql
  2. Enter password:                                 //验证口令
  3. [root@dbsvr1 mysql]# file /root/alldb.sql         //确认备份文件类型

2)只备份指定的某一个库

将userdb库备份为userdb.sql文件:

[root@dbsvr1 ~]# mysqldump -u root -p userdb > userdb.sql
Enter password:                                 //验证口令

3)同时备份指定的多个库

同时备份mysql、userdb库,保存为mysql+userdb.sql文件:

  1. [root@dbsvr1 ~]# mysqldump -u root -p -B mysql userdb > mysql+test+userdb.sql
  2. Enter password:                                 //验证口令

步骤二:使用mysql命令从备份中恢复数据库、表

以恢复userdb库为例,可参考下列操作。通常不建议直接覆盖旧库,而是采用建立新库并导入逻辑备份的方式执行恢复,待新库正常后即可废弃或删除旧库。

1)创建名为userdb2的新库

  1. mysql> CREATE DATABASE userdb2;
  2. Query OK, 1 row affected (0.00 sec)
mysql> CREATE DATABASE userdb2;
Query OK, 1 row affected (0.00 sec)

2)导入备份文件,在新库中重建表及数据

  1. [root@dbsvr1 ~]# mysql -u root -p userdb2 < /root/userdb.sql
  2. Enter password:                                 //验证口令
[root@dbsvr1 ~]# mysql -u root -p userdb2 < /root/userdb.sql
Enter password:  								//验证口令

3)确认新库正常,启用新库

  1. mysql> USE userdb2;                             //切换到新库
  2. mysql> SELECT sn,username,uid,gid,homedir         //查询数据,确认可用
  3. -> FROM userlist LIMIT 10;

4)废弃或删除旧库

  1. mysql> DROP DATABASE userdb;

方法二:

1,使用脚本修改

# vim /tmp/mv-mysql-databses.sh 

#!/bin/bash
# 我的在Innodb下用这种方法
# 假设将yct数据库名改为jingcaiwang
# MyISAM那么可以直接去到数据库目录mv就可以
# MyISAM直接更改数据库目录下的文件即可

mysql -uroot -p123456 -e 'create database if not exists jingcaiwang'
list_table=$(mysql -uroot -p123456 -Nse "select table_name from information_schema.TABLES where TABLE_SCHEMA='yct'")

for table in $list_table
do
    mysql -uroot -p123456 -e "rename table yct.$table to jingcaiwang.$table"
done
 

2,执行脚本

#   sh mv-mysql-databses.sh

 

3,查询,确认结果

mysql>  show tables jingcaiwang;

方法三:

使用binlog日志 

注意:若数据库都使用MyISAM存储引擎,可以采用冷备份的方式,直接复制对应的数据库目录即可;恢复时重新复制回来就行。