目录
- 创建数据库
- 字符集和效验规则
- 查看系统默认字符集和效验规则
- 查看数据库支持的字符集
- 查看数据库支持的字符集效验规则
- 字符集对数据库的影响
- 操纵数据库
- 查看数据库
- 显示创建语句
- 修改数据库
- 数据库删除
- 总结
- 数据库的备份和恢复
- 备份
- 恢复
- 注意事项
- 查看数据库的连接情况
创建数据库
创建名字为test1的数据库
create database test1;
创建一个使用utf8字符集的test2数据库
create database test2 charset=utf8;
创建一个使用utf字符集,并带校对规则的 test3 数据库。
create database test3 charset=utf8 collate utf8_general_ci;
字符集和效验规则
创建数据库的时候有两个编码集:
- 数据库编码集:数据库未来存储数据
- 数据库效验集:支持数据库,进行字段比较使用的编码,本质也是一种读取数据库中数据的采用的编码格式。
所以数据库无论对数据进行任何操作,都必须保证操作和编码必须是编码一致的!
查看系统默认字符集和效验规则
在/var/lib/mysql目录下我们创建的数据库是一个目录文件,而创建完数据库后默认有一个文件,这个文件里面放的就是系统默认的字符集和效验规则db.opt。(我之前该过test1的字符集,其实默认是utf8)
show variables like 'character_set_database';
show variables like 'collation_database';
查看数据库支持的字符集
show charset;
查看数据库支持的字符集效验规则
show collation;
字符集对数据库的影响
创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]
创建一个数据库,校验规则使用utf8_ bin[区分大小写]
比如创建上面两个库,我们如果进行库的排序就会发现,第一个库a、A就会排在一起,第二个库a、A,A一定在前。
操纵数据库
查看数据库
show databases;
显示创建语句
show create database test1;
- MySQL 建议我们关键字使用大写,但是不是必须的。
- 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
- /*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话
修改数据库
修改数据库修改的主要是字符集,效验规则!(不建议修改数据库名)
alter database test1 charset=gbk;
数据库删除
drop database test3;
不建议随意对库执行删除操作,一旦删除就可能无法恢复了!
总结
创建数据库 create database db_name; — 本质就是在/var/lib/mysql创建一个目录
删除数据库 drop database db_name; — 删除目录
数据库的备份和恢复
备份
语法
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
示例:
mysqldump -P3306 -uroot -p -B test1 > test1.sql
打开这个表,我们会发现这个表中的内容都是我们之前创建库进行的各种操作。
恢复
source /root/MYSQL/test1.sql
注意事项
备份表
mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
备份多个库
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。
查看数据库的连接情况
show processlist;
可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。