MariaDB [db2]> use information_schema;
Database changed
MariaDB [information_schema]> SELECT * FROM triggers WHERE trigger_name='trigger_student_count_insert'\G
1. 增长学员触发器
MariaDB [db2]> CREATE TRIGGER <==建立命令
-> trigger_student_count_insert <==触发器名称
-> AFTER INSERT <==触发时间
-> ON student_info FOR EACH ROW <==做用在表student_info的每一行
-> UPDATE student_count SET student_count=student_count+1;<==触发条件
MariaDB [db2]> CREATE TRIGGER trigger_student_count_delete
-> AFTER DELETE
-> ON student_info FOR EACH ROW
-> UPDATE student_count SET student_count=student_count-1;
MariaDB [hellodb]> grant select(stuid,name) on hellodb.students to v9@'192.168.50.100''在192.168.50.100主机上使用帐号v9查看授予的权限'
MariaDB [hellodb]> desc students;
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| StuID | int(10) unsigned | NO | PRI | NULL | auto_increment || Name | varchar(50)| NO || NULL ||
+-------+------------------+------+-----+---------+----------------+
受权而且建立帐号
1
MariaDB [(none)]> grant all on *.* to v9@'192.168.50.109' IDENTIFIED BY '123456';
回收权限指令 REVOKE
语法格式
1
2
3
4
REVOKE
priv_type[(column_list)][ , priv_type[(column_list)]]...
ON [object_type] priv_level
FROM user [, user]...
MariaDB [(none)]> REVOKE SELECT (stuid,name)
-> ON `hellodb`.`students`
-> FROM v9@'192.168.50.100';
查看指定用户得到的受权:
使用帮助 Help SHOW GRANTS
查询指定用户权限
语法格式 SHOW GRANTS FOR ‘user’@‘host’;
示例
1
2
3
4
5
6
7
MariaDB [hellodb]>SHOW GRANTS FOR v9@'192.168.50.100';
+----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'v9'@'192.168.50.100' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
链接权限
| GRANT SELECT (name, stuid) ON `hellodb`.`students` TO 'v9'@'192.168.50.100'
查询权限 |
+----------------------------------------------------------------------------------------------------------
'查看mysql数据库中文件的结构'
MariaDB [(none)]> show table status from mysql\G
*************************** 30. row ***************************
Name: user
Engine: MyISAM <==存储引擎为 MyISAM
Version: 10
Row_format: Dynamic
......省略
Comment: Users and global privileges
PERFORMANCE_SCHEMA数据库 MySQL 5.5开始新增的数据库,主要用于收集数据库服务器性能参数(例如链接状况、负载状况),库里表的存储引擎均为PERFORMANCE_SCHEMA,用户不能建立存储引擎为PERFORMANCE_SCHEMA的表
1
2
3
4
MariaDB [(none)]> show table status from performance_schema\G
*************************** 52. row ***************************
Name: users
Engine: PERFORMANCE_SCHEMA
information_schema数据库 MySQL 5.0以后产生的,一个虚拟数据库,物理上并不存在。information_schema数据库相似与“数据字典”,提供了访问数据库元数据的方式,即数据的数据。好比数据库名或表名,列类型,访问权限(更加细化的访问方式),使用的存储引擎为MEMORY
1
2
3
4
MariaDB [(none)]> show table status from information_schema\G
*************************** 75. row ***************************
Name: INNODB_SYS_SEMAPHORE_WAITS
Engine: MEMORY
example “stub”引擎,它什么都不作。可使用此引擎建立表,但不能将数据存储在其中或从中检索。目的是做为例子来讲明如何开始编写新的存储引擎
4.6 管理存储引擎
查看mysql支持的存储引擎: show engines;
查看当前默认的存储引擎:
1
MariaDB [(none)]> SHOW VARIABLES LIKE '%storage_engine%'
设置默认的存储引擎:
1
2
3
vim /etc/my.conf
[mysqld]
default_storage_engine=InnoDB <==在[mysqld]中增长系统此选项
查看库中全部表使用的存储引擎 Show table status from db_name;
1
2
'查看hellodb数据库中表的引擎'
MariaDB [(none)]> SHOW table STATUS FROM hellodb\G
查看库中指定表的存储引擎
经过查看表状态信息获取 show table status like ’ tb_name’;
1
2
3
4
5
6
7
'进入表所在数据库'
MariaDB [(none)]> use hellodb
'查询表students所用引擎'
MariaDB [hellodb]> SHOW table STATUS LIKE 'students'\G
*************************** 1. row ***************************
Name: students
'Engine: InnoDB'<==存储引擎
'建立默认引擎为Innodb的表cc'
MariaDB [db2]> CREATE TABLE cc(StuID int unsigned NOT NULL,Name varchar(50) NOT NULL) ENGINE=Innodb;
修改表存储引擎 ALTER TABLE tb_name ENGINE=InnoDB;
1
2
3
4
5
6
7
'修改表cc的存储引擎为MyISAM'
MariaDB [db2]> ALTER TABLE cc ENGINE=MyISAM;'查看修改效果'
MariaDB [db2]> SHOW TABLE STATUS LIKE 'cc'\G
*************************** 1. row ***************************
Name: cc
Engine: MyISAM
aria_block_size <==配置选项|变量
Description: Block size to be used for Aria index pages. Changing this requires dumping, deleting old tables and deleting all log files, and then restoring your Aria tables. If key lookups take too long (and one has to search roughly 8192/2 by default to find each key), can be made smaller, e.g. 2048 or 4096.
Commandline: --aria-block-size=# <==是否支持命令行
Scope: Global <==变量范围级别
Dynamic: No <==是否支持动态修改
Data Type: numeric <==数据类型
Default Value: 8192 <==默认值
系统变量
系统变量查询
格式 支持模糊查询,默认为SESSION级别的 SHOW VARIABLES [LIKE 'Variable_name'] 查GLOBAL级别的变量 SHOW GLOBAL VARIABLES [LIKE 'Variable_name]'
示例
1
2
3
4
5
6
7
8
9
'列出全部会话系统变量'
MariaDB [(none)]> SHOW VARIABLES;'查找指定会话系统变量'
MariaDB [(none)]>SHOW VARIABLESlike LIKE '%datadir%';
+---------------+--------------+
| Variable_name | Value |
+---------------+--------------+
| datadir | /data/mysql/ |<==变量的键值
+---------------+--------------+
常见的系统变量 max_connections:容许最大并发链接数
1
2
MariaDB [hellodb]> show variables like '%connect%';| max_connections | 151 |
修改服务器变量的值:
获取设置SET帮助 mysql> help SET
修改全局变量:仅对修改后新建立的会话有效;对已经创建的会话无效 SET GLOBAL system_var_name=value SET @@global.system_var_name=value
1
2
MariaDB [db2]> SET GLOBAL max_connections=500;
MariaDB [db2]> SET @@GLOBAL.max_connections=600;
修改会话变量: SET [SESSION] system_var_name=value SET @@[session.] system_var_name=value
状态变量(只读) 用于保存mysqld运行中的统计数据的变量,不可更改
格式 查看全局状态变量 SHOW GLOBAL STATUS [LIKE ‘Variable_name’] 查看会话状态变量 SHOW [SESSION] STATUS [LIKE ‘Variable_name’]
示例 uptime:查看服务器启动时间
1
MariaDB [(none)]> show status like 'uptime';
Com_select:查看使用查询的次数
1
2
MariaDB [hellodb]> show status like '%select%';| Com_select | 4 |<==查询计数器
Com_insert:查看插入计数器
1
2
MariaDB [hellodb]> show status like '%insert%';| Com_insert | 1 |
Threads_connected:查看多少人正在链接数据库,Threads为进程项
1
2
3
MariaDB [hellodb]> show status like '%Threads%';| Threads_connected | 1 |<==正在链接的
| Threads_running | 1 |<==正在运行的