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
原文地址:http://blog.51cto.com/psemily/2043921