系统数据库
information_schema :虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、
字符信息等
mysql:核心数据库,里面包含用户、权限、关键字等信息。不可以删除
performance_schema:mysql 5.5版本后添加的新库,主要收集系统性能参数,记录处理查询请求时发生的各种事件、锁等
现象
sys : mysql5.7版本新增加的库,通过这个库可以快速的了解系统的元数据信息,可以方便DBA发现数据库的很多信息,解决性
能瓶颈都提供了巨大帮助
数据库操作
创建数据库
CREATE DATABASE db_name charset utf8; -- 创建一个名为db_name的数据库 并指定编码集为utf8
查看数据库
show databases; -- 查询当前用户下所有数据库 show create database db_name -- 查看穿件数据库的信息 select database(); -- 查询当前操作所在的数据库名称
选择数据库
USE db_name
删除数据库
DROP DATABASE db_name;
命名规范
可以由字母、数字、下划线、@、#、$
区分大小写 唯一性
不能使用关键字如: CREATE SELECT
不能单独使用数字
最长128位
用户权限
用户管理
创建用户 create user '用户名'@'IP地址' identified by '密码'; 删除用户 drop user '用户名'@'IP地址'; 修改用户 rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';
授权管理
show grants for '用户'@'IP地址' -- 查看权限 grant 权限 on 数据库.表 to '用户'@'IP地址' -- 授权 revoke 权限 on 数据库.表 from '用户'@'IP地址' -- 取消权限
修改密码
方式一:mysqladmin 命令
mysqladmin -u用户名 -p密码 password 新密码
方式二:直接设置用户密码
set password for '用户名'@'IP' = password('新密码'); flush privileges;
方式三:修改mysql库下的user表
5.7版本修改密码方式: updata mysql.user set authentication_string=password('新密码') where user = '用户名' flush privileges; -- 刷新权限 5.6版本 updata mysql.user set password = password('新密码') where user= '用户名' flush privileges; -- 刷新权限
忘记密码
#1.首先打开cmd 窗口,关闭mysql服务 net stop mysql #2.然后跳过权限检查,启动mysql,输入命令 mysqld --skip-grant-tables #3.重新打开一个新的cmd窗口,启动客户端(已跳过权限检查,可以直接登录) mysql #4.直接进来,修改密码 update mysql.user set authentication_string=password('123456') where user='root'; #5. 刷新权限 flush privileges;