mysql的日志,授权,缓存,事务,引擎

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql的日志,授权,缓存,事务,引擎相关的知识,希望对你有一定的参考价值。

一、mysql的引擎

    mysql的两个主要引擎: MyISAM和InnoDB

    查看mysql引擎:

    1、查看支持的引擎:show engines;

    2、查看表的引擎:show table status from DATABASE [where name=''|like ''];

                     show create table table name;

                     show variables like '%storage_engine%';

    MyISAM特点:

    1、MyISAM不支持事务

    2、MyISAM引擎创建的表有三个:

        user.frm 存储的是表的结构

        user.MYI 存储的是表的索引  

        user.MYD 存储的是表的数据

    3、MyISAM支持表级锁

    4、支持全文索引


    InnoDB特点:

    1、支持短事务,支持高并发MVVC(多版本并发控制),四个隔离级别

    2、创建的表有两个

    user.frm 表的结构

    user.ibd 表的数据及索引

    3、行级锁  

    4、使用聚集索引

二、mysql的授权

    语法:GRANT priv_type[,...] ON [{table|function|procedure}] db.{table|routine} TO 'USERNAME'@'HOST' [IDENTIFIED BY 'password'][REQUIRE SSL] [WITH with_option]

    with_option:

       GRANT OPTION

         | MAX_QUERIES_PER_HOUR count

         | MAX_UPDATES_PER_HOUR count

         | MAX_CONNECTIONS_PER_HOUR count

         | MAX_USER_CONNECTIONS count

三、mysql的事务

    事务的四要素:A(Atomicity原子性)C(Consistency一致性)I(隔离性Isolation)D(永久性Durability)

    事务的隔离级别:

    1、读未提交

    2、读提交

    3、可重读

    4、可串行化

    可能存在的问题:

    脏读

    不可重复读

    幻读

    加锁读

    mysql的隔离级别默认为REPEATABLE_READ,查看命令为SHOW VARIABLES LIKE 'tx_isolation';

    启动mysql的事务:START TARNSACTION;

    结束事务:1)COMMIT 2)ROLLBACK 

四、mysql的缓存

    查询缓存相关服务器变量;SHOW GLOBAL VARIABLES LIKE '%query%';

    

------------------------------+---------+

| Variable_name                | Value   |

+------------------------------+---------+

| query_alloc_block_size       | 16384   |

| query_cache_limit            | 1048576 |

| query_cache_min_res_unit     | 4096    |

| query_cache_size             | 1048576 |

| query_cache_strip_comments   | OFF     |

| query_cache_type             | OFF     |

| query_cache_wlock_invalidate | OFF     |

| query_prealloc_size          | 24576   |

+------------------------------+---------+

    查询缓存状态:SHOW GLOBAL STATUS LIKE '%Qcache%';

+-------------------------+---------+

| Variable_name           | Value   |

+-------------------------+---------+

| Qcache_free_blocks      | 1       |

| Qcache_free_memory      | 1031336 |

| Qcache_hits             | 0       |

| Qcache_inserts          | 0       |

| Qcache_lowmem_prunes    | 0       |

| Qcache_not_cached       | 0       |

| Qcache_queries_in_cache | 0       |

| Qcache_total_blocks     | 1       |

+-------------------------+---------+

    调整参数的逻辑:

五、mysql的日志

    1、查询日志

        开启查询日志:SHOW VARIABLES LIKE '%general_log%'    

+------------------+-----------+

| Variable_name    | Value     |

+------------------+-----------+

| general_log      | OFF       |

| general_log_file | node4.log |

+------------------+-----------+

        log_output TABLE|FILE  查询日志输出文件类型

    2、慢查询日志

    开启慢查询日志:SHOW GLOBAL VARIABLES LIKE '%slow_query_log%';

+---------------------+----------------+

| Variable_name       | Value          |

+---------------------+----------------+

| slow_query_log      | OFF            |

| slow_query_log_file | node4-slow.log |

+---------------------+----------------+

     set slow_query_log=ON  或者编辑/etc/my.cnf

     long_query_time  | 10.000000 查询超过多久才记录 默认为10s

    3、二进制日志

    开启二进制日志:编辑/etc/my.cnf  bin_log=/data/mydata/my_bin

    查看 SHOW VARIABLES LIKE '%bin%';

    查看二进制日志:mybinlog 

    mysqlbinlong --start-position=# my_bin.000001

              --stop-position=#

              --start-datetime='YYYY-MM-DD hh:mm:ss'

    SHOW MASTER STATUS 当前正在 使用的二进制日志的状态

    SHOW BINARY LOGS 查看使用的二进制日志

    4、中继日志 复制时使用

    开启中继日志的方法:vim /etc/my.cnf  relaylog=relay_log

    5、错误日志

    6、事务日志

    mysql忘记密码:

    1、>mysqld_safe --skip-grant-tables --skip-networking;

       >USE mysql;

       >UPDATE user SET password=PASSWORD('newpass') where user='root';

       >FLUSH PRIVILEGES;

       终止进程safe进程,重启mysql


    yum源安装MariaDB:

        1、vim /etc/yum.repos.d/MariaDB.repo      

[MariaDB]
name = MariaDB
baseurl = https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.2.10/yum/centos/6/x86_64
gpgcheck=0

        2、安装开发环境及MariaDB  yum install

        3、配置/etc/my.cnf.d/server.cnf,在mysqld下加入下面三行:

        datadir=/data/mydata

        skip_name_resolve=ON

        innodb_file_per_table=ON  #InnoDB每个表单独使用一个表空间存储数据及索引 开启此项后后面的高级功能才能使用


        4、更改mydata的属主属组 chown -R mysql:mysql /data/mydata

        5、运行安装程序 /usr/bin/mysql_install_db --user=mysql --datadir=/data/mydata

           不安装会启动不了mysql提示阻止的


    mysql导入数据库的方式:

        1、mysql -u -p hellodb<hellodb.sql(要有hellodb数据库)

        2、mysql -u -p     mysql>SOURCE hellodb.sql

以上是关于mysql的日志,授权,缓存,事务,引擎的主要内容,如果未能解决你的问题,请参考以下文章

Mysql系列--事务日志

MySQL技术内幕 InnoDB存储引擎 之 InnoDB体系架构

「mysql优化专题」详解引擎(InnoDB,MyISAM)的内存优化攻略?

MySQL的Binlog与主从复制

sqlserver的事务

深入理解MySQL:InnoDB 引擎日志事务索引锁 及MySQL调优