mysql日志管理

一、用户与授权
1、新建用户:create user ‘username’@’host’ [identified by password ‘密码’ ]
创建后用户账号密码信息保存在mysql.user数据表中
2、删除用户:drop user ‘username’@’host’;
3、重命名用户:rename user ‘old_user’@’host’ to ‘new_user’@’host’;
4、设置用户密码:set password=password(‘密码’); 函数加密
Set password=’username’@’host’=password(‘密码’);
其他用户修改密码
set password for ‘y1905’@’%’=password(‘pwd123’);
5、忘记root密码的解决办法(root用户在mysql数据库本地登录)
(1)停止mysqld服务:systemctl stop mysqld之后确定3306端口关闭
(2)使用mysql_safe结合skip_grant_tables启动数据库
Mysqld_safe –skip-grant-tables& 之后确认3306端口开启
(3)可直接登录mysql,进入mysql修改root密码
Update mysql.user set password=password(‘密码’) where user=’root’;
(4)刷新数据库:flush privileges;如果不刷新,要重启才生效
(5)新密码登录,登录成功说明修改成功
6、授权:grant 权限列表 on 库名.表名 to 用户名@主机地址 [identified by ‘密码’];
权限列表:all(grant option之外所有)、alter、create、create user、delete、index、insert、、update、select、drop、replication slave(允许读取二进制文件)、show databases(允许显示所有数据库)
7、授权管理:
(1)只授予满足需要的最小权限,防止用户误操作或干坏事
(2)创建用户时限制用户的登录主机
(3)初始化数据库时删除没有密码的用户
(4)为每个用户设置满足密码复杂度的密码
(5)定期清理不需要的用户
8、授权注意事项:
(1)当用户名和主机名在数据库中不存在时,用户和主机名被创建
(2)当用户名和主机名在数据库中已经存在,后面设置的新密码可以覆盖旧密码,相当于修改密码的功能。
9、查看权限:show grants for ‘username’@’主机地址’;
10、撤销权限:revoke 权限列表 on 库名.表名 from ‘用户’@’主机地址’;
例:revoke update on imployee.it_salary from ‘user5’@’localhost’;
二、mysql日志管理
1、分类:错误日志、通用查询日志、二进制日志、慢查询日志
2、错误日志:主要记录mysql启动和停止时,以及运行中发生错误的相关信息,默认保存在mysql/data/*.err,可在my.cnf中指定日志文件名,重启mysql服务后生成日志文件
在这里插入图片描述

3、通用查询日志:记录mysql所有连接和语句,默认关闭
查看:show variables like ‘general%’;
不建议开启,开启方法:vim /etc/my.cnf
在这里插入图片描述

4、二进制日志:记录所有更新了数据或已经潜在更新了数据的语句,记录数据的更改,主要目的是恢复数据时能最大程度恢复数据库。默认开启的,以mysql-bin命名,会自动分割。
在这里插入图片描述

Mysqlbinlog工具可以查看二进制文件。
mysqlbinlog mysql_bin.000001
5、慢查询日志:记录所有执行时间超过long_query_time秒的SQL语句,用于找到哪些查询语句执行时间长,以便对其优化,默认关闭的
查看:show variables like ‘%slow%’; show_query_log是慢查询选项
在这里插入图片描述

开启:set global slow_query_log=ON;
慢查询时间,默认10秒,
查看:show variables like ‘long_query_time’;
修改:set global long_query_time=5;
或vim /etc/my.cnf
在这里插入图片描述

三、数据乱码解决方案
1、产生原因:服务器系统字符设置问题;数据表语序设置问题;客户端连接语序问题。
2、解决方法:设置字符集为UTF-8
设置方法:
(1)建库时指定字符集
例:create database chartest character set ‘utf8’ collate ‘utf8_general_ci’;
创建数据表时不指定,默认按数据库字符集指定,使用show table status;查看表的字符集。
(2)创建表时可以指定字符集,数据库中表根据需要可设置不同字符集。
例:create table product(id int(11),name char(10)) default charset=utf-8;
(3)使用set names临时设置字符集,mysql重启失效
例:set names utf8;
修改配置文件,永久生效
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值