mysql常用操作与日志

在linux上的mysql命令

mysql -e "mysql内部命令"   #可在外部显示myslq内的输出,-e可跟多条命令用;隔开

在mysql内的mysql命令

system linux命令                #在mysql内执行linux的命令
source /备份文件                #在mysql内导入备份文件
set names 字符集                #指定字符集
desc 表名;                     #查看表结构        
drop user '用户名'@'来源地址';       #删除用户
rename user '原主机名'@'源地址' to '新主机名'@'新地址';          #修改主机名地址
select user();            #查看当前登录用户
set password for '用户名'@'来源地址'=password('新密码');        #修改用户密码
set password=password('新密码');                     #修改已登录用户的密码
show grants;                    #查看登录用户权限
show grants for '用户名'@'来源地址';       #查看指定用户权限
show variables;                  #查看mysql权限配置   my.cnf的配置
show variables like '单项配置';         #匹配其中一项权限查看
select count(*) from 表;            #查看一个表有多少行内容
select distinct id from 库名.表名;      #去重 id去重
select * from users order by 年龄 asc;     #order by 按年龄序列查看users表  asc按升序查看年龄表 desc倒序
select * from users limit 3;                 #指定查询内容的行数 3为前三行  1,4为1到4行

mysql日志

mysql日志分为:*错误日志,通用查询日志,*二进制日志(binlog),*慢查询日志

错误日志

vim my.cnf
[mysqld]
log-error = /data/3306/mysql_error3306.err      #指定错误日志文件 重启服务即开启错误日志

通用日志    #通用日志记录了mysql的每一项操作,不需要开启,开启过于占用资源 如果已开启通用日志将其关掉

vim my.cnf
[mysqld]
log = on      #如果开启 请关闭
log = /usr/local/mysql/data/mysql_general.log

二进制日志    #必须开启 用于增量备份 主从复制 有3种记录模式

vim my.cnf
[mysqld]
log-bin = /data/3306/mysql-bin          #开启binlog 并且制定binlog记录在哪 默认就有
#binlog_format=mixed                  #binlog记录模式 默认为mixed   

binlog三种记录模式:

statement level模式:每一条修改数据的sql语句都记录到binlog里

    优点;不需要记录每一行的数据变化,减少binlog日志量,节约IO提高性能

    缺点:由于他记录的是执行语句,所以为了让这些语句在slave端也能执行,必须加入上下文相关信息

row level模式:记录每一条数据执行的语句,既当一条sql语句执行多条数据,他不记录sql语句,而是记录每条语句的执行命令

    优点:记录下每一行数据修改的细节

    缺点:binlog日质量过大

mixed模式: 前两种模式的结合,    #一般建议使用此种模式

在线修改模式生效

立即生效
set session binlog_format = "statement";      #修改为statement模式 set session binlog_format = "row";         #修改为row模式   set session binlog_format = "mixed";        #修改为mixed模式 show variables like "binlog_format";        #查看模式
全局生效    #永久生效 需要重新登入mysql 不需要重启
set global binlog_format = "statement";        #修改为statement模式
set global binlog_format = "row";          #修改为row模式
set global binlog_format = "mixed";         #修改为mixed模式

 慢查询日志

记录所有执行时间超过指定秒的语句

long_query_time = 1                    #超过1秒执行的sql语句
log-slow-queries = mysql_slow.log       #记录到哪个文件
log_queries_not_using_indexes            #记录没有使用索引的语句       
原文地址:https://www.cnblogs.com/ywrj/p/9427674.html