grant select,update on . to 'user01"@"localhost'> 语法:revoke 权限 on数据库.表 from 用户@主机;
revoke updtae on . from ‘user01’@’localhost’; //撤销用户user01任意库,组的的updta的权限
show grants for "user01'@'localhost'; // 查看用户权限 MySQL日志管理(错误日志、通用查询日志、二进制日志、慢查询日志) 接下来修改MySQL的配置文件,将以上四种日志的配置文件插入到[mysqld]中:
[root@localhost bin]# cd /usr/local/mysql/data/ //mysql日志存放位置
[root@localhost bin]# vim /etc/my.cnf // 将以下内容插入到[mysqld]中:
#错误日志
log-error=/usr/local/mysql/data/mysql_error.log //在此路径下定义错误日志的存放位置、文件名
#通用日志
general_log=ON //开启
general_log_file=/usr/local/mysql/data/mysql_general.log //指定日志文件存放位置、文件名
#二进制日志(记录用户对数据库的操作)
log_bin=mysql-bin //指定二进制日志
#慢日志
slow_query_log=ON //开启
slow_query_log_file=mysql_slow_query.log //指定日志文件存放位置、文件名
long_query_time=1 //设置最长记录时间
查看已经配置好的日志文件:
错误日志:
1.主要记录当MySQL启动或停止时,以及在运行过程中发生任何错误时的相关信息。错误日志默认保存在MySQL的安装路径data文件夹下,后缀名是.err。
2.在MySQL的配置文件中,可以指定日志文件的保存位置和日志的文件名。log-error=file_name选项来指定保存错误日志的位置,file_name 指定日志文件名,如果没有指定文件名,使用host_name.err作为文件名。重启MySQL后生成mysql_error.log用来记录错误日志。 通用查询日志:
1.通用查询日志用来记录MySQL的所有连接和语句,默认是关闭的。使用show语句可以查询出日志的信息。
2.修改MySQL配置文件的general_log=ON选项,可以打开通用查询日志,general_log_file=name定义通用查询日志的位置,如果没有指定file_named的值,默认名是host_name.log。重启MySQL后通用查询日志生效。
show variables like 'general%'; //查看通用日志文件状态:
二进制日志:
1.二进制日志用来记录所有更新了数据或者已经潜在更新了数据的语句,记录了数据的更改,主要目的是在恢复数据时能够最大程度的恢复数据库。二进制日志默认是开启的,在data文件夹下,以mysql-bin命名,数据量大时,它会自动分割成多个日志文件,以数字做扩展名。
2.二进制日志可以使用MySQL的工具mysqlbinlog查看二进制文件:
mysqlbinlog --no-defaults mysql-bin.000001 //5.7版本MySQL 查看二进制日志文件
show variables like 'log_bin%'; //查看二进制日志文件状态(是否开启):
慢查询日志:
1.慢查询日志记录所有执行时间超过long_query_time秒的SQL语句,用于找到哪些查询语句执行时间长,以便对其进行优化。默认慢查询日志是关闭的,slow_query_log是,慢查询的选项,默认是OFF。
2.使用SQL语句开启慢查询功能。
3.慢查询时间设置默认为10秒,记录10秒内的查询,可以通过global long_query_time选项进行修改。使用show语句查看慢查询日志。
show variables like '%slow%'; //查看慢查询日志文件状态(是否开启):
show variables like 'long_query_time'; //查看最长记录时间:
set global slow_query_log=ON; //开启慢查询日志:
慢查询测试:select sleep(6); //延迟6秒:
[root@localhost data]# vim mysql_slow_query.log //进入慢日志文件查看记录信息,可以看到相应的记录。 数据乱码解决方案 MySQL服务器使用中经常有乱码产生,主要有以下几种原因:
1.服务器系统字符设置问题
2.数据表语系设置的问题
3.客户端连接语系的问题
总结:乱码问题原因简单解释就是 在使用、存储数据的时候,各个环节设置的字符集如果不同,就会产生乱码。 解决方法:对于MySQL服务器,只要设置存储的字符集为UTF-8,对应的客户端程序也使用相同编码,就不会产生乱码。例如:create database chartest character set 'utf8_general_ci'; 在创建数据库时使用参数character set设置字符集,collate是对字符集进行校队的规则,字符集设置好后后续在库中都是默认的UTF-8了。 本章总结: 1.MySQL新建用户需要指定权限。 2.忘记root密码,可以跳过权限表进行修改。 3.MySQL日志包括错误日志、通用查询日志、二进制日志、慢速查询日志。 4.MySQL乱码问题可以采用指定字符集UTF-8的方式解决。