MySQL按用户分大小_mysql使用1(用户+权限)

Linux元素据(文件属性)存储在inode

忘记本地管理员密码(未忘记密码,直接使用mysqladmin -uroot -p password 新密码)

1关闭数据库

2维护模式启动:mysqld_safe --skip-grant-tables --skip-networking & //重置密码以后使用/etc/init.d/mysqld stop(restart)关闭

说明:--skip-grant-tables跳过授权表,--skip-networking跳过远程登陆

3执行mysql连接客户端,select user,host,authentication_string from mysql.user;查询用户

desc mysql.user;查询表字段,5.7版本密码是authentication_string字段

mysql.session和mysql.sys是系统内置用户

修改密码:

flush privileges; //必须先执行这句,因为--skip-grant-tables在启动时跳过了授权,所以这里要手动从磁盘加载授权表内存

grant all on . to root@'localhost' identified by '新密码'; //也可以用alter user root@'localhost' identified by '新密码';

mysql连接支持两种,远程tcp/ip,本地socket,不依赖网络(mysql -uroot -p密码 [-S /tmp/mysql.sock])

核心程序mysqld,数据文件ibd,实例(后台运行、守护运行的进程),启动时预分配内存大小(独占内存)

实例组成 = mysqld + master thread + work thread(s) + 预分配内存

mysqld服务器进程结构,客户端通过tcp/ip或socket请求连接到mysqld,由内部线程处理,经过连接层->SQL层(sql_mode,sql92标准)->存储引擎层->磁盘、内存、网络

查看连接线程命令:show processlist;终端使用mysql命令连接就是一个会话,在show processlist;能查到,默认能连151给会话,由参数max_connections控制,会话没有动作8小时断开,由参数wait_timeout控制

基于代价的最优执行方法:cpu,内存,io,时间消耗最少

逻辑结构的数据库,在物理存储上是数据文件目录下的一个文件夹,所以在/data/mysql下mkdir 文件夹,在mysql客户端执行show databases;能够查到

8.0版本不太支持MyISAM引擎

myisam的表,3个文件构成,表名.frm存储表结构(列、列属性),表名.MYD存储数据记录,表名.MYI存储索引,没有单独存放表的元数据(表属性)

innodb的表,2给文件构成,表名.frm存储表结构(列、列属性),表名.ibd存储数据记录和索引,数据字典信息(表的元数据即表属性)存在基表(数据目录下ibdata1文件,类似linux的inode)

innodb非分区表:页是最小io单元,区是最小分配单元,多个区构成段(一个表也称为一个段)

ibd文件,每页(page)16k(建库的时候可以调整),每次申请空间分配64页连续空间,即1m(如果page调整为32k,则每次分配32页,即1m),索引按页为单位

64页空间(1m)称为一个区

mysql的用户定义:用户名@'白名单'

举例(添加注释的3种指定网段的较常用,不建议用%,没有起到过滤的作用):

root@'%'

root@'localhost'

root@'127.0.0.1'

root@'10.0.0.%' 代表10.0.0.%/255.255.255.0,即10.0.0.1-10.0.0.255

root@'10.0.0.5%' 代表10.0.0.50-10.0.0.59

root@'10.0.0.0/255.255.254.0' 代表。。。

root@'10.0.%'

创建用户并授权(并设置密码):

create user 用户名@'白名单' identified by '密码'; 不指定identified by则只创建用户

select user,host from mysql.user; 查询用户

grant all on . to 用户@'白名单' identified by '密码'; 授权

8.0之前的版本可以不创建用户,直接授权就能自动创建用户:grant all on . to 用户@'白名单' identified by '密码';

修改用户密码:

alter user 用户名@'白名单' identified by '新密码';

删除用户(生产环境一般屏蔽该功能):

drop user 用户名@'白名单';

权限管理(all+with grant option构成管理员权限,普通用户一般只授予SELECT,UPDATE,INSERT,DELETE权限):

8.0之前,按命令(select、delete、update、insert、drop等)

8.0之后,设定角色,授权角色

权限列表:ALL(普通管理员)、。。。、with grant option(可以给别的用户授权的权限,本地管理员具备)

授权命令:

grant 权限(多给用逗号隔开) on 作用目标(库名.表名,都可以为*) to 用户@'白名单' identified by '密码' [with grant option];

查询权限:

show grants for 用户名@'白名单'; 若查询结果的权限是USAGE,表示只能登陆

回收分配的权限列表中的某些权限:

revoke 权限(如delete) on 作用目标 from 用户@'白名单';

生产中开用户:开发邮件申请

领导批复、作用目标、操作类型、客户端地址(白名单)、账号使用库名或业务名、root权限不给

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值