第一步:查看存储引擎
执行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文件:
- [root@dbsvr1 ~]# mysqldump -u root -p --all-databases > /root/alldb.sql
- Enter password: //验证口令
- [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文件:
- [root@dbsvr1 ~]# mysqldump -u root -p -B mysql userdb > mysql+test+userdb.sql
- Enter password: //验证口令
步骤二:使用mysql命令从备份中恢复数据库、表
以恢复userdb库为例,可参考下列操作。通常不建议直接覆盖旧库,而是采用建立新库并导入逻辑备份的方式执行恢复,待新库正常后即可废弃或删除旧库。
1)创建名为userdb2的新库
- mysql> CREATE DATABASE userdb2;
- Query OK, 1 row affected (0.00 sec)
mysql> CREATE DATABASE userdb2;
Query OK, 1 row affected (0.00 sec)
2)导入备份文件,在新库中重建表及数据
- [root@dbsvr1 ~]# mysql -u root -p userdb2 < /root/userdb.sql
- Enter password: //验证口令
[root@dbsvr1 ~]# mysql -u root -p userdb2 < /root/userdb.sql
Enter password: //验证口令
3)确认新库正常,启用新库
- mysql> USE userdb2; //切换到新库
- mysql> SELECT sn,username,uid,gid,homedir //查询数据,确认可用
- -> FROM userlist LIMIT 10;
4)废弃或删除旧库
- 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存储引擎,可以采用冷备份的方式,直接复制对应的数据库目录即可;恢复时重新复制回来就行。