zoukankan      html  css  js  c++  java
  • mysql 优化命令

    MYSQL配置:数据库结构:库.表.记录
    
    一、登录及退出
    
    mysql -u root
    exit
    
    加密码:
    mysqladmin -u root password 123456
    mysql -u root -p
    
    改密码:
    mysqladmin -u root -p password 666666
    
    二、查看
    
    查看数据库
    show databases;
    
    切换数据库命令
    use test;
    
    查看表:
    show tables;
    
    查看表结构
    
    desc user;
    
    三、创建与删除
    
    库操作
    
    create database stu;
    
    drop database stu;
    
    
    表操作
    
    create table user(
    
    name char(8) not null, 
    age tinyint not null, 
    xb char(3) not null, 
    password char(16) not null default '123456', 
    id char(18) not null, 
    primary key (id));
    
    
    drop table user;
    
    
    四、记录操作命令
    
    查:
    select * from user;
    select * from user where name='xc';
    
    增:
    insert into user values( 'xc','17','w','000000','01' );
    insert into user(name) values( 'xh');
    
    改:
    update user set xb='m' where name='xh';
    update user set password=encrypt('111111') where name='xh';
    
    删:
    delete from user where name='xh';
    
    
    授权:
    grant all on stu.user to wcg@localhost identified by '111111';
    
    
    删除权限:
    revoke all on stu.user from wcg@localhost;
    
    查看权限:
    show grants for wcg@localhost;
    
    
    五、备份与还原
    
    备份
    
    mysqldump -u root -p stu>/opt/stu.bak
    mysqldump -u root -p --all-databases>/opt/all.bak
    
    mysqldump -u aaas -p yxbao_website>/mydir/aaa.sql   备份
    
    
    
    还原
    
    mysql -u root -p stu</opt/stu.bak
    mysql -u root -p </opt/all.bak
    
    mysql -u aaas -p qbxb_website<aaa.sql   还原
    
    
    ------------------------------------------------------------
    
    
    
    
    
    
    --------《数据操作》------
    
    use  mysql; 切换数据库
    
    select user,host,password from mysql.user; 查看数据
    
    
    drop user ''@'localhost'; 删除空用户
    
    
    update mysql.user set host='192.168.200.%' where user='root' and host='127.0.0.1'; 刷新
    
    
    update user set password=password('123456') where user='root'; 刷新改密码
    
    flush privileges; 刷新MySQL的系统权限相关表
    
    
    
    在当前用户的家里面:                  (局部需要手动输入密码)
    vim .my.cnf
    
    [client]
    user=root
    password=123456
    host=localhost
    
    
    show engines;   查看引擎 
    
     Transactions: 事物的意思
     XA:          分布式事物
     Savepoints:  存储点
    
     
    MyISAM 适用于写少读多的场景   适合做查询,适合数据仓库    
    InnoDB 适用于读多写多,支持事物    
    
    
    修0改数据库默认引擎:
    vim /etc/my.cnf
    #default-storage-engine=MYISAM
    default-storage-engine=INNODB
    
    
    
    
    MYISAM  写少读多 应用于电子图书馆  (表级别)
    .frm :表结构
    .myd :表数据
    .myi :表索引
    
    
    Innodb 读多写多 应用于电子商城以及各种应用  (表级别)
    
    .frm :表结构
    .ibd :表空间(数据和索引) 
    .opt :字符集和排序规则
    
    
    innodb_file_per_table=1 每个表都有一个表空间
    
    show table status like 'user' G  查看表状态 可以查看一个表的存储引擎是什么
    
    
    
    
    
    
    
    变量:
    
    服务器变量:
    show global variables;      (查看全局变量)
    
    show global variables like '%innodb';
    
    状态变量: 
    
    show global status;
    select database ();    查看当前正在实用的哪个库    
    
    
    
    --------------------------
    
    mysql -u root -p123456 -e 'create database c17'
    -e 参数,在shell命令中直接操作(调用)mysql 命令   
    
    mysql -u root -p123456 -D c17 -e 'create table user(id char(16) not null)'
    -D 参数,在shell环境中直接登录到指定的库
    
    
    
    -----------------------------------------------------------------
    
    create database c15 default character set utf8;
    (创建库的时候加一个默认字符集,就是实现往里面差中文了)
    
    
    default-character-set=utf8 设置默认字符
    
    
    
    通过mysql命令修改:
    修改数据库的字符集
        mysql>use mydb
        mysql>alter database mydb character set `utf8` collate `utf8_general_ci`;
    show
    创建数据库指定数据库的字符集
        mysql>create database mydb character set `utf8` collate `utf8_general_ci`;
    
        mysql>create database mydb character set `gbk` collate `gbk_chinese_ci`;
    
    
    通过配置文件修改:
    修改/var/lib/mysql/mydb/db.opt
    default-character-set=latin1
    default-collation=latin1_swedish_ci
    为
    default-character-set=utf8
    default-collation=utf8_general_ci
    
    重起MySQL:
    
    show character set; 字符集查看
    show collation; 查看排序规则
    
    
    cd /usr/local/mysql/data/mydb    
    
    vim db.opt (查看修改的字符集)
    
    -------------------------------------------------------
    
    1.通过MySQL命令行修改默认字符集:
    mysql> set character_set_client=utf8;
    mysql> set character_set_connection=utf8;
    mysql> set character_set_database=utf8;
    mysql> set character_set_results=utf8;
    mysql> set character_set_server=utf8;
    mysql> set character_set_system=utf8;
    mysql> set collation_connection=utf8;
    mysql> set collation_database=utf8;
    mysql> set collation_server=utf8;
    查看:
    mysql> show variables like 'character_set_%';
    show variables like 'collation_%';
    
    
    另一台服务器导入已有数据库:
    本台服务器yum安装
    vim /etc/my.cnf
    
    default-character-set=utf8
    default-collation=utf8_general_ci
    
    [client]
    default-character-set=utf8                         
    
    -------------------《表操做》------------------
    
    一、键与索引
    
    1、主键:唯一,非空,只有一个
       唯一键:唯一,可以为空,多个
    
    2、索引:
    
    show indexes from user;(查看)
                          (表名)(字段名)   
    create index kc_index on kecheng(kc);  (创建)
                (自定义索引名)
    
    drop index kc_index on kecheng; (删除)
    
    
    二、创建、删除、修改
    
    1、创建
    create table user(id int unsigned not null auto_increment,name varchar(30) not null,age tinyint not null,primary key(id),unique key(name),index(age));
    
    (unsigned 正整数)
    (unique   唯一键 )
    (index  索引)
    
    auto_increment(自动编号功能)
    (整数类型,无符号(正数)、非空、主键或唯一键)
    
    select_insert_id0; (最后一个插入id号)
    
    show table status like 'user' G;  (查看表状态)
    
    
    create table kecheng(kcid tinyint unsigned not null auto_increment primary key,kc varchar(50) not null) engine=innodb;
    
    create table u1 select * from user whwere id<=2;
    (导入数据一样,表结构不一样)
    
    create table u2 like user;  
    (导入表结构一样数据不一样)
    
    
    2、修改
    
    增加、修改、删除字段
    alter table user add kcid tinyint unsigned not null;
    alter table user change kcid kid tinyint unsigned not null;
    
    
    增加、修改、删除索引
    alter table user add indx kcid(kcid);
    alter table user drop kcid;   (删除)
    
    修改表名字
    alter u1 rename to nu ll;
    修改表引擎
    alter table user engine=innodb; 
    
    ------------------------------------------------------------
    
    mysql环境导入数据库
    
    ! mysql -uroot c15</root/c15.sql
    
    --------------------------------------------------------
    
    单表查询(简单查询)
    
    select * from c15.gangwei;
    select name,gongzi from c15.gangwei;
    select * from c15.gangwei where name='王力邦';
    
    select distinct gangwei from c15.gangwei;
    (去除重复的,返回唯一不同值)
    
    select name as '姓名',gongzi as '工资' from gangwei where gongzi>5000;
    
    
    ------布尔表达式:
    
     =                   Equal to              (等于)
    
    <> aka !=            Not equal              (不等于)
    <=>                  NULL,safe equal to     (等于空)
    <                    Less than              (不到)
    <=                   Less than or equal to(小于或等于) 
    >                    Greater than           (大于)
    >=                   Greater than or equal to
                           (大于或等于) 
    
    
    
    --------逻辑表达式:
    
    Not aka !            Logical NOT
                         逻辑不
    
    AND aka &&           Logical AND
                          逻辑和
    
    OR aka ||            logical OR
                          逻辑或    
                           
    
    例子:
    select * from gangwei where gangwei='运维' or gangwei='售前';
    select * from gangwei where gangwei !='运维';
    
    
    -------扩展表达式:
    
    BETWEEN           Exists in specified range
                      (存在于指定范围)
    
    IN                Exists in  specified set
                       (存在于指定的组)
    
    IS NULL           Is a NULL value
                        (是一个空值)  
    
    IS not null       Is not a NULL value
                          (不是一个NULL值) 
    
    LIKE              Wildcard nmath
                           (通配符nmath)
    
    
    例子:
    
    select * from gangwei where test3 between 15 and 30;
    
    select * from c15.gangwei where gangwei in ('运维','坐家');
    
    select * form gangwei where gangwei is not null;
    
    ------------------------
    
    
    #order by 子句:
    
    select * from user where gangwei is not null order by gongzi desc;
    
    asc 升序     desc 降序
    
    
    #limit 子句:
    
    select name as '姓名',gongzi as '工资' from gangwei where gongzi>500 limit 5,5;
    
    (limit 5,5  显示去掉前5个,从第六行显示5行)
    
    select * from info order by id desc limit 1;
    (显示最后插入的)
    
    
    #聚合:
    
    avg(平均值)  sum(总和) min(最小) max(最大) count(数)
    
    select avg(test1) as '平均工资' from gamgwei;
    select sum(test1) as '总分' from gangwei;
    select min(test3) as '总分' from gangwei;
    select max(test3) as '总分' from gangwei;
    
    
    #分组
    
    select avg(test1) as '平均分',gangwei as '岗位' from user group by gangwei;
    
    select avg(test1) as '平均分',gangwei as '岗位' from user group by gangwei having avg(test1)>5;
    
    
    select avg(gongzi) as '平均工资', gangwei as '岗位' from user group by gangwei;
    
    select avg(gongzi) as '平均工资', gangwei as '岗位' from user group by gangwei having avg(gongzi)>3000;
    
    having (有的意思)  好比过滤一下的意思
    
    
    ---------------------增、删、查--------------------------
    
    查询:
    
    1、创建单表导入另一个表(简单查询)
    create table info select * from gangwei;
    create table info2 like gangwei;
    
    2、多表查询
    
    自然连接:
    select g.name,g.gangwei,i.class,i.age from gangwei as g,info as i where g.name=i.name;
    
    外连接:
    
    左外连接
    select g.id,g.name,g.gangwei,i.class,i.age from gangwei as g left join info as i on g.name=i.name;
    
    右外连接
    select g.gangwei,i.id,i.name,i.class,i.age from gangwei as g right join info as i on g.name=i.name;
    
    3、子查询(嵌套查询)
    select * from info where age>(select avg(age) from info);
    
    select * from info where name in (select name from gangwei);
    
    
    4、联合查询
    
    (select name,gongzi from gangwei)union(select name,.age from info)
    
    
    增删改:
    
    select last_insert_id();
    create table infobak like info;        
    (把另一张表的数据你导入新建的一张表里)
    
    insert into infobak(name,class,age,xulei) select nmae,class,age,xulei from info where age>=20;
    
    truncate table info;  (不能加条件,初始化表的意思)
      
    -------------------------------------------------------------------------------------------------------------------------------------
     
                《用户权限管理》
    
    一、用户管理:
    1、创建
    create user bbsroot@'%' identified by '123456';
    
    select user,host,password from mysql.user;  (查看)
    flush privileges;    (刷新授权表)
    
    2、删除
    
    drop user bbsadmin@localhost
    
    3、修改
    
    rename user bbsroot@'%' to bsadmin@localhost;
    
    
    select user();      (查看当前登录用户)
    
    update user set password=password('formal') where user='yxjr123456@A'; 刷新改密码
    
    
    二、权限管理
    
    1、权限级别
    
    user: 用户账号、全局权限
    host: 合并到user表
    db: 数据库权限
    tables_priv: 表权限
    columns_priv: 字段权限
    procs_priv: 存储过程、存储函数权限
    
    
    use mysql;
    desc user;  (查看)
    
    
    2、权限的种类
    
    是一张表
    
    
    3、授权
    create user aaas@'%' identified by 'yxjr123456@';
    
    grant all on *.* to aaas@'%';
    
    show grants for root@localhost;
    
    grant update(class) on c15.info to wcg@localhost; 
    
    grant all on *.* to formal@'%' identified by 'yxjr123456@RAK';
    
    
    4、撤销权限
    revoke all on *.* from wcg@localhost;
    
    
    5、破解密码
    vim /etc/init.d/mysql
    
    $exec  这下面加
    
    --basedir=/usr --user=mysql --skip-grant-table>/dev/null 2>&1 &
    --skip-network       (跳过远程登录)
    --skip-name-resolve   
    (屏蔽名字解析,加快用户登录速度)
    
    ---------------------------------------------------------------PS
    
    
    PS是LINUX下最常用的也是非常强大的进程查看命令
    //以下这条命令是检查java 进程是否存在.
    ps -ef |grep java
    
    下面对命令选项进行说明:
    -e 显示所有进程。
    -f 全格式。
    
    ps e 列出程序时,显示每个程序所使用的环境变量。
    ps f 用ASCII字符显示树状结构,表达程序间的相互关系
    
    grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
    ps -ef | grep httpd :
    检查httpd进程是否存在
    
    
    ------------------------《日志管理》-----------------------------
    
    show global variables like '%log%';
    
    一、错误日志
    1、记录mysql启动、停止过程
    2、同步过程   /var/log/mysqld.log    目录位置
    
    一台繁忙的mysql服务器,如果开启日志功能会产生大量的I/O,严重影响mysql的性能,把日志和数据分别存放在(不存放在一个硬盘中)
    
    可以更改目录位置
    vim /etc/my.cnf
    log-error=/var/log/mysqld.log
    
    
    -----二、一般日志------
    默认关闭, 推荐关闭
    
    general_log       |OFF
    
    general_log_file  |/var/run/mysqld/mysqld.log  
    
    
    
    -----三、慢查询日志-----
    
    slow-query-log           mysql.cnf  里面加一条就开启了
    
    long_query_time |10.000000      十秒以外的就是慢性查询了
    
    slow_query_log  |OFF       默认是关闭的
            
    
    slow_query_log_file   |/var/run/mysqld/mysql-slow.log
                           (/usr/local/mysql/data/localhost-slow.log二进制安装目录) 
    
    vim /etc/my.cnf           开启
    slow-query-log
    log-slow-queries = /var/lib/mysql/mysql-slow.log
    long_query_time = 2 超过多少秒
    
    
    -----四、二进制日志文件------
    
    1、做数据库主从复制     
    2、即时点还原,可以把数据还原到数据崩溃的那一刻
    
    
    1、开启
     
    vim /etc/my.cnf                (开启二进制日志)
    log-bin=mysql-bin
    
    
    1) log-bin-index=/var/run/mysqld/mysql-bin.index
    生成目录有哪些二进制文件
    
    2) log-bin=/var/run/mysqld/mysql-bin
    (实际工作中这个这个目录应该是一个挂载点,因为在不同硬盘上比较安全)(更改这个目录的时候必须改 属主数组)
    
    3)sync-binlog=1
    同步二进制文件,每隔多长时间、每隔多少事件往硬盘里写一次
    
    
    2、格式
    binlog_format
    
    statement    保存命令,能够引起数据库变化的
    row          保存的变化行
    mixed        混合格式     
    
    vim /etc/my.cnf
     binlog_format=mixed
    
    
    3、查看
    
    show master status;   当前正在使用哪个二进制文件
    
    show binlog events in 'mysql-bin.000002';    
    当前二进制文件哪些事件
    
    
    cd /usr/local/mysql/data
    mysqlbinlog mysql-bin.000003   查看
    
    mysqlbinlog --start-position=106 --stop-position=187 mysql-bin=000002>/opt/info.bak
    导出来
    
    mysqlbinlog -hlocalhost -uroot -p mysql-bin.000001>1.sql 导出来保存sql格式恢复
    
    106 前叫 二进制文件头
    
    at 106 开头     end 187 结束
    
    show binary logs;   查看所有二进制文件
    
    
    mysqlbinlog mysql-bin.000003   查看
    
    
    
    4、滚动
    service mysqld restart
    
    flush logs;
    
    
    5、删除
    show binary logs;
    purge binary logs to 'mysql-bin.000003'
    
    删除000003 以前的
    
    
    --------五、《事务》-----------------------------
    
    
    INNODB特征:
    
    多用户,多程序,多线程,并发
    
    ACID就是:原子性(Atomicity)、一致性(Consistency)、
              隔离性(Isolation)、持久性(Durabilily)
    
    
    show tables status G;      (查看表状态)
    
    
    show global variables like '%auto%'; 
    查看一下自动提交
    
    set autocommeit=0;       (关闭自动提交)
    
    start transaction;      启动事务日志(操作数据库之前必须做)
    启动日志以后所有操作将会被记录下来
    
    
    delete from info where id=18; (假如误操作删了表里面的东西) 
    
    rollback; 回滚       (可以回复误操作删除的东西)
    
    commit;  提交        (提交以后的才是保存的,做完操作必须做)
    
    
    
    savepoint full;   保存当前表完全数据
    
    savepoint no16;   保存前16数据,精确值  
    savepoint no17;   
    
    
    rollback full;     恢复完全数据的
    rollback no16;     恢复精确的
    
    
    
    show global variables like '%log%'; 查看一下事务日志的目录
    
    
    事务日志和数据日志在同一个目录下
    cd /avr/lib/mysql
    ib_logfile0
    ib_logfile1
    
    里面为什么有两个文件呢,因为第一个写满了第二个接替第一个工作,第二个写满了第一个接替第二个工作,循环工作,防止出现工作停顿。
    
    
    
    --------------------六、事务日志------------------------------
    innodb_flush_log_at_trx_commit    
    
    0: 每秒同步,并执行磁盘flush操作;
    1:每十五同步,并执行磁盘flush操作;
    2:每事务日志,但不执行磁盘flush操作;
    
    工作中用 1
    
    
    =====================================================================  《备份与恢复》
    
    
    一、备份类型:
    
    热备:在数据库正在运行情况下进行备份。
    
    温备:服务正在运行,可读不可写时备份。
    
    冷备:在数据库停止的情况下进行备份。
    
    
    物理备份:直接把数据文件拷贝出去
    
    逻辑备份:mysqldump 逻辑备份。备份文件是语句是逻辑备份。
    
    
    完全备份:一次完整备份  列如all
    
    增量备份:不包含上一次备份的数据,只备份增加的一部分
    优点:备份数据量小备份速度快。占用空间小
    缺点:还原速度慢   得一个一个的还原,还原慢。而且很麻烦
    
    差异备份:包含上一次备份的数据 
    
    优点:备份数据多,速度比较慢。占用空间大。
    缺点:还原效率高。
    
    
    
    二、 备份内容:数据文件,配置文件,二进制日志,事务日志。
    
    备份工具:
    
    ======mysqldump :====
    
    
    
    flush tables with read lock; 把表变成只读表,防止备份出来的数据不一致
    
    unlock tables; 解除读锁
    
    flush logs; 滚动日志(二进制)
    
    man mysqldump:
    
    --lock-all-tables 
    
    如果指定库中的表类型均为INNODB,可使用 --single-transaction启动热备,不要和--lock-all-tables 一起使用
    
    
    --flush-logs
    
    --master-data={0|1|2}
    
    0:不记录二进制日志文件及路位置;
    
    1:以CHNAGE MASTER TO 的方式记录位置,可用与恢复后直接启动从服务器;
    
    2:以CHANGE MASTER TO 的方式记录位置,默认为被注释;
    
    备份
    mysqldump -u root -p --lock-all-tables --flush-logs --master-data=2 --events --all-databases>/opt/all-`date +%F-%H-%M-%S`.sql
    还原
    mysql -uroot -p </opt/all-all-2015-05-20-11-14-03.sql
    
    
    flush-logs;
    show binary logs;
    
    show binlog events in 'mysql-bin.000002'; (查看所需要还原的事件)
    
    
    
    
    二进制日志备份
    
    备份
    mysqlbinlog --start-position 120 --stop-position 907 mysql-bin.000009>/opt/9.sql
    
    还原
    mysql -uroot -p</opt/binlog-bak-2015-05-20-11--31.sql
    
    
    
    
    还原时关闭二进制日志,完成后开启
    
    缺点:
    1、可能会引起浮点数据丢失精度;
    2、备份数据容量大于原始数据(压缩后大大节省空间)
    3、速度慢,不适合对大数据库做完全备份;
    
    
    -------《第二种备份方法》
    select * into outfile '/opt/back15' from info;
    通常适用于备份一张表
    
    
    create table info1 like info;
    load data infile '/opt/back15' into table info1;
    
    
    
    ---------《LVM 逻辑卷备份》
    
    
    pvcreate /dev/sdb /dev/sdc
    
    vgcreate vg0 /dev/sdb /dev/sdc
    
    lvcreate -L 500M -n lv0 vg0
    
    
    mkfs -t ext4 /dev/vg0/lv0
      
    mkdir /mnt/mysqldata
    
    挂载
    
    mount -a
    
    
    vim /etc/my.cfg
    [mysqld]
    datadir=/mnt/mysqldata    (更改一下位置)
    
    log-bin=mysql-bin       
    
    service mysqld restart
    chown -R mysql.mysql /mnt/mysqldata
    
    
    1、数据文件要在逻辑卷上;
    2、此逻辑卷所在卷组必须有足够空间使用快照卷;
    3、数据文件和事务日志要在同一个逻辑卷上;
    
    
    1、打开会话,施加读锁,锁定所有表;
    
    flush tables with read lock;
    flush logs;
    
    show master status; (查看当前二进制的位置)
    
    
    
    2、通过另一个终端,保存二进制日志文件及相关位置信息;
    mysql -uroot -p -e 'show master status G'>/path/to/master.info;
    
    例:mysql -uroot -p -e 'show master status G'>/opt/binlog.info 
    
    
    3,创建快照
    lvcreate -L# -s -p r -n LV_NAME /path/to/source_lv
    例:lvcreate -L 50M -s -p r -n lv0-back /dev/vg0/lv0
    
    (-s snapshop 快照卷的意思)
    (-p 权限)(-r读 -w写) 
    
    
    
    4、释放锁
    unlock tables;
    
    
    5、挂载快照卷  备份
    mkdir /mnt/lv0-bak
    mount /dev/vg0/lv0-bak /mnt/lv0-bak
    
    备份
    cp -ra * /opt/bakc15   ( -a 保留原有文件属性)
    
    
    6、删除快照卷
    unmont /mnt/lv0-bak
    lvremove /dev/vg0/lv0-bak
    
    
    7、增量备份二进制
    
    insert into info(age) values(110);    (增加一个备份没有的)
    
    备份二进制
    mysqlbinlog mysql-bin.000002>/opt/2.sql   
    
    关闭二进制文件
    
    删除然后还原
    
    service mysqld restart
    
    8、还原
    
    cd /opt/bakc15
    cp -ra * /mnt/mysqldata
    
    mysql<2.sql    (二进制还原)
    
    
    ------------------------------------------------------------------
    
    XTRAbackup    完整备份
    
    innobackupex --user=root /opt
    备份到哪里 
    
    进入的opt下备份的目录
    
    cat xtrabackup_binlog_info         (二进制日志保存的位置)
    
    
    mysqlbinlog mysql-bin.000004  (保存位置那个日志) 
    
    innobackupex --apply-log /opt/2015-05-24_15-28.11
    
    敲完上面的这一条必须敲,完善上面配置的
    
    
    mysqlbilog --start-position=106 mysql-bin.000004>/opt/bakbinlog
    (备份二进制文件)
    
    
    
    (恢复)
    innobackupex --copy-back /opt/2015-05-24_15-28-11
    
    chown -R mysql.mysql *
    (恢复之后属=主数组权限更改为原来的mysql)
    
    
    
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    lower_case_table_names=1  (不区分大小写)
    
    
    <<MySQL查看和修改wait_timeout>>
    
    1、全局查看wait_timeout值
    [plain] view plaincopyprint?
    mysql> show global variables like 'wait_timeout';  
    
    2、修改全局wait_timeout值
    [plain] view plaincopyprint?
    set global wait_timeout=28800;  
    
    或 修改 /etc/mysql/my.cnf
    添加 wait_timeout= 432000
    
    默认值是28800秒(即默认8小时),修改为432000
    
    单位为毫秒;
    3、查看修改之后的值
    
      
    
    -----------------------------------------------------------------------------------------
     设置新的MySQL最大连接数为200:
     MySQL> set GLOBAL max_connections=200;
    
    或
    vim /etc/my.cnf
    max_connections=1500;
    
    
    《如何查看mysql数据库连接数和内存占用》
    
    命令: show processlist; 
    或 mysqladmin -uadmin -p -h10.140.1.1 processlist
    如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。 
    
    show processlist;只列出前100条,如果想全列出请使用show full processlist; 
    mysql> show 
    processlist; 
    命令: show status; 
    命令:show status like '%下面变量%'; 
    
    
    Aborted_clients            由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。 
    Aborted_connects           尝试已经失败的MySQL服务器的连接的次数。 
    Connections                试图连接MySQL服务器的次数。 
    Created_tmp_tables         当执行语句时,已经被创造了的隐含临时表的数量。 
    Delayed_insert_threads     正在使用的延迟插入处理器线程的数量。 
    
    Delayed_writes             用INSERT DELAYED写入的行数。 
    Delayed_errors             用INSERT DELAYED写入的发生某些错误(可能重复键值)的行数。 
    Flush_commands             执行FLUSH命令的次数。 
    Handler_delete             请求从一张表中删除行的次数。 
    Handler_read_first         请求读入表中第一行的次数。 
    Handler_read_key           请求数字基于键读行。 
    Handler_read_next          请求读入基于一个键的一行的次数。 
    Handler_read_rnd           请求读入基于一个固定位置的一行的次数。 
    Handler_update             请求更新表中一行的次数。 
    Handler_write              请求向表中插入一行的次数。 
    Key_blocks_used            用于关键字缓存的块的数量。 
    Key_read_requests          请求从缓存读入一个键值的次数。 
    Key_reads                  从磁盘物理读入一个键值的次数。 
    Key_write_requests         请求将一个关键字块写入缓存次数。 
    Key_writes                 将一个键值块物理写入磁盘的次数。 
    Max_used_connections       同时使用的连接的最大数目。 
    Not_flushed_key_blocks     在键缓存中已经改变但是还没被清空到磁盘上的键块。 
    Not_flushed_delayed_rows   在INSERT DELAY队列中等待写入的行的数量。 
    Open_tables                打开表的数量。 
    Open_files                 打开文件的数量。 
    Open_streams               打开流的数量(主要用于日志记载) 
    Opened_tables              已经打开的表的数量。 
    Questions                  发往服务器的查询的数量。 
    Slow_queries               要花超过long_query_time时间的查询数量。 
    Threads_connected          当前打开的连接的数量。 
    Threads_running            不在睡眠的线程数量。 
    Uptime                     服务器工作了多少秒
    
    
    ---------------------------------------------------------------------------------------
    log_bin_trust_function_creators=true
    
    
    解决(mysql)包查询太大
    
    说明:
    
    1、项目刚开始运行时是正常的,可以正常访问,可是运行了一段时间就报错
    2、查询下设置最大值
    SHOW VARIABLES LIKE '%max_allowed_packet%';
    3、修改vim /etc/my.cnf
    max_allowed_packe=16384
    
    
    
    
    应用:
    
    truncate table 表名;        恢复id值从1开始
    
    
    
    
  • 相关阅读:
    Android高斯模糊技术,实现毛玻璃效果(转)
    设计模式笔记之六:生产消费者模式
    设计模式笔记之五:观察者模式
    设计模式笔记之四:MVP+Retrofit+RxJava组合使用
    设计模式笔记之三:Android DataBinding库(MVVM设计模式)
    Eclipse Code Recommenders 自动补全(联想)神器
    java根据freeMark模板生成内容
    通过java反射机制,获取对象的属性和值(包括所有继承的父类)
    win7下自动更新svn目录
    jdk11 eclipse下开启ZGC
  • 原文地址:https://www.cnblogs.com/ls13691357174/p/9621817.html
Copyright © 2011-2022 走看看