【表级别:】
【字段级别】:指定那些字段拥有访问权限 INSERT, SELECT,UPDATE
MAX_QUERIES_PER_HOUR count 每小时最大访问次数 设定为0表示没有权限无限次
MAX_USER_CONNECTIONS count 每小时可连接服务器的次数。
MAX_USER_UPDATES count 每小时可以发出的数据修改类查询命令数。
【收回权限】
REVOKE privileges ON db_ FROM 收回用户权限,可以收回单一的权限
关于服务器信息:
SHOW GLOBAL STATUS LIKE 'a%'; 查看因意外原因关闭的连接数,如果这个数很高的话说明mysql很繁忙
FLUSH HOSTS;清除mysql缓存
max_user_connections 用户的最大连接数(0表示不限定)
max_connect_errors 最大错误连接数
max_connections 全局允许连接的次数,超出的放入到请求队列中(默认最大为151)
connect_timeout 连接超时间
dev.mysql.com/doc/ mysql的参考手册
状态变量:显示mysql的统计数据。
服务器变量:显示mysql服务器运行时的信息。
【日志:】
【错误日志:】
服务器启动和关闭过程中的信息 服务器运行过程中的错误信息
事件调节器运行一个时间时产生的信息 再从服务器上启动从服务进程时产生的信息 【一般查询日志】
占用资源很多,一般不会启动 【慢查询日志】
查询时间长度超出了事先设定的查询时间长 SHOW GLOBAL VARIABLES LIKE 'long%' 【二进制日志】
主要是记录跟数据修改相关的sql的语句 主要目的:
制作即时点恢复 复制功能
【中继日志】
主要负责再从服务器上完成复制功能
【事务日志(redo,undo)】
是事务引擎独有的,是为了事务安全的(ACID)
主要作用是将随即I/O转换成顺序I/O,是大小确定的一段存储空间。 两个文件轮换使用的,谁写满谁同步到磁盘空间上去,这就叫日志组
一般事务日志和数据一定要分开。并且事务日志使用raid1存储
InnoDB的恢复操作:如果事务提交,还没有同步,断电了,那么开机启动就需要恢复操作 所以事务日志并不是越大越好,10M,20M就足够了。
所以二进制日志要单独存放。
二进制日志记录日志的方式有三种: 基于语句(效率高,但是有可能出错) 基于行(效率低,但是数据安全) 混合方式(mysql默认的)
查看所有日志应用:
SHOW VARIABLES LIKE '%log%'
【查询日志:】
log 默认关闭:是指定一般查询日志
general_log 也是指定一般查询日志(真正开始记录的) general_log_file 一般查询日志的文件位置
log_output ={TABLE|FILE|NONE} 日志的输出位置,记录到文件,表
【慢查询日志:】
log_slow_queries 是否记录慢查询日志功能的(需要开启) long_query_time
slow_query_log 是否启用慢查询日志(真正开始记录的)
slow_query_log_file 慢查询文件路径
【错误日志:】
log_error 直接启用了错误日志
log_warings 默认为1表示启用,是否将警告信息也加入到错误日志中
【二进制日志:】
binlog_format={STATEMENT|ROW|MIXED}
log_bin 是否启用二进制日志(服务器启动时启动的) sql_log_bin 真正开始记录的二进制日志(服务器运行临时修改) max_binlog_size 定义二进制文件的大小,最大为1G
如果做过了完全备份,就可以删除之前的二进制文件了,最好不要删除尽量打包储存起来
binlog_cache_size 每个用户跟事务性引擎相关的缓冲大小
binlog_stmt_cache_size 每个用户跟非事务性引擎相关的缓冲大小
sync_binlog 同步保存(用1更加安全但性能差)
binlog_direct_non_transactional_updates 开启非常影响性能 默认关闭
expire_logs_days 是否将二进制日志自动定义过期时间
【中继日志:】 relay_log 默认为空 指定文件路径或直接写on
relay_log_index 有多少个中继日志文件
relay_log_info_file 信息文件
relay_log_purge 修检中继日志
relay_log_recovery 是否进行自动恢复。
relay_log_space_limit 所有的二进制最大应用限定空间
sync_relay_log
sync_relay_log_info 会降低服务器性能
【事务日志:】
innodb_flush_log_at_trx_commit 是否在事务一提交就立即同步{0|1|2},0表示每秒一次刷新操作,1表示有事务提交就同步刷新一次默认最安全,2结合0和1,只同步不刷新,不安全
innodb_locks_unsafe_for_binlog 是否使用非安全锁 也就是表示是否使用间隙锁默认为off启用间隙锁功能
innodb_log_buffer_size 日志缓存区大小 默认为8M innodb_log_file_size 日志文件大小 默认为5M innodb_log_files_in_group 日志文件组 默认为两个
innodb_log_group_home_dir 日志文件的位置 默认为当前目录datadir innodb_mirrored_log_groups 日志文件组是否做镜像
SHOW MASTER STATUS;查看二进制日志文件正在使用的是哪一个,并且处于哪一个
二进制文件的路径
SHOW BINLOG EVENTS 显示二进制日志事件
mysqlbinlog mysql-bin.000003 查看二进制日志文件内容
mysqlbinlog --start-position=301 mysql-bin.000003 > /root/a.sql --stop-position
--start-datetime 查看开始时间 --stop-datetime
FLUSH LOGS; 关闭当前文件打开一个新文件