目录
1.数据库的创建
在ubuntu环境下查看配置文件:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
其中有一行:
datadir = /var/lib/mysql
表示MySQL的数据库文件被存储在/var/lib/mysql
这个目录下。以下工作由mysql客服端让mysqld服务端做的。
创建数据库:
if not exists 作为可选项:表示该数据库不存在就创建,如果存在则不执行创建。
create database [if not exists] 数据库名;
查看数据库列表
show databases;
这就可以看到我们刚刚创建的数据库了。
在该路径下也确实新增了 hellosql数据库的目录。
所以建立数据库,本质就是建立Linux下的一个目录。
查看当前正在使用哪个数据库
select database();
使用指定的数据库
use 数据库名;
就是用刚才的数据库
2.数据库的删除
if exists 表示存在就删除,不存在则不执行删除。
drop database [if exists] 数据库名;
test数据库被删除,本质就是删除了,/var/lib/mysql路径下的test目录
3.字符集和校验规则
选择合适的字符集可以确保数据库能够支持所需的字符范围,而选择合适的校验规则则决定了数据库中字符数据的排序和比较方式。
创建数据库时,有两个编码集:
数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致
- 数据库编码集:确保数据库中存储的字符能够正确地被存储和读取,防止乱码现象的发生。
- 数据库校验集:支持数据库,进行字段比较使用的编码,本质也是读取数据库中数据所采用的编码格式。
查看系统默认字符集及校验规则
字符集:
show variables like 'character_set_database';
校验规则:
show variables like 'collation_database';
改变数据库的字符集和校对规则
创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]
create database test1 collate utf8_general_ci;
校验规则是不区分大小写,那么进行查找时,根据的条件也是不区分大小写的
创建一个数据库,校验规则使用utf8_ bin[区分大小写]
创建一个数据库,字符集utf8, 校验规则使用utf8_ general_ ci[不区分大小写]create database test2 collate utf8_bin;
create database test3 charset=utf8 collate utf8_general_ci;
查看数据库支持的字符集和校验规则
字符集:向表插入时规则
show charset;
校验规则:指的是字符集所对应的校验规则(查找时规则)
show collation;
4.修改数据库
修改数据库字符集和校验规则:
alter database 数据库名 charset=指定字符集 collate 指定校验规则;
查看创建数据库时使用的命令:
show create database 数据库名;
/*!40100 default.... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话
5.数据库的备份和恢复
备份:
将指定数据库备份到指定的路径下,该操作不仅备份数据,而且将该数据库下进行的所有的有效操作都进行了备份
sudo mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
恢复:
现在我们将test 数据库删除掉。
将恢复出来的数据库,重新执行一遍它的历史操作
mysql> source 备份文件所在路径;
注意:
如果备份的不是整个数据库,而是其中的一张表,怎么做?
mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
同时备份多个数据库
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原
6.查看连接情况
show processlist
可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。