MySql数据库

元数据库:记录mysql自身数据的数据库

三大元数据库

  1. information_schema:
    信息数据库,保存mysql所维护的其他数据库信息,例如:数据库名,数据库的表,表栏的数据类型与访问权 限等
  2. mysql:
    核心数据库,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息
  3. performance_schema:
    用于mysql的监控数据的存放

切换元数据库(在命令行里切换):

use 数据库
示例: use mysql

账户管理

创建账户

命令格式:create user 用户名 identified by ‘密码’
说明:identified by会将纯文本密码加密作为散列值存储
示例:create user test identified by ‘123456’;

查看账户

命令格式:select host,user,password from user;
host列说明:

  1. % : 匹配所有主机
  2. localhost: localhost不会被解析成IP地址,直接通过UNIXsocket连接
    • 同一主机通讯,不经过网络协议栈,不用打包拆包,计算校验和、维护序列号应答等。只是将应用层数据从一个进程拷贝到另一个进程
  3. 127.0.0.1:会通过TCP/IP协议连接,并且只能在本机访问
  4. ::1: ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1

删除账户

命令格式:drop user 用户名
示例:DROP USER test;
一般不用,用时需谨慎

修改密码

命令格式:set password for 用户名=password(‘新密码’)
示例:SET PASSWORD FOR test=PASSWORD(‘123456’);

刷新配置

命令格式:flush privileges

设置权限

命令格式:grant privileges on databasename.tablename to username@‘host’

  1. privileges: 指定select,update等权限,全部权限使用all
  2. databasename:指定数据库,所有数据库请使用*
  3. tablename: 指定数据表,所有表请使用*
  4. username: 需要赋权的用户名,@带的是Host,表示赋权操作针对那些链接,详情查看【host列说明】
使用示例
  • create select, update on bookshop.t_book TO test@‘%’;
    将bookshop数据库中的t_book表的select,update权限赋予test用户,并且不对ip地址限制
  • grant all on . to dba@‘localhost’
    一般用于赋予管理员最高权限,谨慎使用
  • grant create view on testdb.* to developer@‘192.168.0.%’;
    以192.168.0开头的账户名deveoper用户针对testdb数据库赋予创建视图的权限
  • grant show view on testdb.* to developer@‘192.168.0.%’
    以192.168.0开头的账户名deveoper用户针对testdb数据库赋予查看视图的权限
  • grant index on testdb.* to developer@‘192.168.0.%’;
    以192.168.0开头的账户名deveoper用户针对testdb数据库赋予创建索引的权限
  • grant create routine on testdb.* to developer@‘192.168.0.%’
    以192.168.0开头的账户名deveoper用户针对testdb数据库赋予创建删除存储过程与函数的权限
  • grant alter routine on testdb.* to developer@‘192.168.0.%’;
    以192.168.0开头的账户名deveoper用户针对testdb数据库赋予操作存储过程与函数的权限
授权用户可以将拥有的权限再赋予其他用户

命令格式:grant privileges on databasename.tablename to username@‘host’ with grant option
示例:grant select on testdb.* to dba@localhost with grant option
说明:一般不用,建议与数据库管理员(DBA)统一管理

查看权限

show grants:查看当前用户(自己)权限
show grants for dba@localhost;:查看其他 MySQL 用户权限

撤销权限

命令格式:revoke privileges on databasename.tablename from username@‘host’
示例:revoke update on bookshop.t_book from test@‘%’;
- 收回test用户对于bookshop库中t_book表的update权限(ip不限)

revoke privileges on databasename.tablename from username@‘host’

收回test用户对于bookshop库中t_book表的update权限(ip不限)

mysql引擎

什么是数据库引擎

  • 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据, 不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能

查看数据引擎

	命令:show engines
	Support字段说明:
		default的为默认的引擎
		为yes表示可以使用
		为no表示不能使用

常用引擎

MyISAM引擎

		MYISAM强调了快速读取操作
		使用场景: 大量查询,很少修改的场景
		存储限制:256T
		事务支持:不支持事务

memory

		所有的数据都保存在内存中,一旦服务器重启,所有Memory存储引擎的表数据会消失但是表结构会保存下来
		使用场景:由于易失性,可以用于存储在分析中产生的中间表
		存储限制:取决与RAM
		事务支持:不支持事务

InnoDB

		后者修改快,支持事务
		使用场景:一般事务性,均使用该引擎,用途最广,如果把握不准使用何种引擎,就使用该引擎
		存储限制:64TG
		事务支持:支持事务

ARCHIVE

		只允许插入和查询,不允许修改和删除,压缩存储,节约空间,可以实现高并发的插入,支持在自增id上建立索引
		使用场景:在日志和数据采集的时候可以使用
		特点
			Archive表比MyISAM表要小大约75%,比支持事务处理的InnoDB表小大约83%
			不支持索引(自增id列除外)
			支持insert,select操作,但不支持delete,update操作
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐