您的位置:首页 > 数据库 > MySQL

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

2017-11-24 15:24 246 查看
一、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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息