启动数据库命令mysql mysql启动命令是什么( 二 )


对于启动选项来说 , 如果启动选项名由多个单词组成 , 各个单词之间用短划线-或者下划线_连接起来都应该 , 但是它对应的系统变量的单词之间一定使用下划线_连接起来(即通过show查看或set设置时)
服务器程序运行过程中设置系统变量有那么一点牛逼的一点只是 , 对于一大半系统变量来说 , 它们的值应该在服务器程序运行过程中进动作态改写而不用终止并重启服务器
不过系统变量有全局和目前会话作用域之分
作用域GLOBAL:全局变量 , 波及服务器的全体操作 。
SESSION:会话变量 , 波及某个软件连接的操作 。(别名叫LOCAL)
格式:
1. SET [GLOBAL|SESSION] 系统变量名 = 值;
2. SET [@@(GLOBAL|SESSION).]var_name = XXX;
global例如:
1. SET GLOBAL default_storage_engine = InnoDB;
2. SET @@GLOBAL.default_storage_engine = InnoDB;
session例如:
1. SET SESSION default_storage_engine = InnoDB;
2. SET @@SESSION.default_storage_engine = InnoDB;
3. SET default_storage_engine = InnoDB;//默认 session
查看格式:SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配的模式];
1. SHOW SESSION VARIABLES LIKE 'default_storage_engine';
2. SHOW GLOBAL VARIABLES LIKE 'default_storage_engine';
小心:如果某个软件变化了某个系统变量在GLOBAL作用周围的值 , 并不会波及该系统变量在目前已经连接的软件作用周围为SESSION的值 , 只会波及后面连入的软件在作用周围为SESSION的值 。
补充说明并不是全部系统变量都有着GLOBAL和SESSION的作用周围
* 有一些系统变量只有着GLOBAL作用周围 , 比方说max_connections , 表示服务器程序支持同一时间最多有多少个软件程序进行连接
* 有一些系统变量只有着SESSION作用周围 , 例如insert_id , 表示在对某个包含AUTO_INCREMENT列的表进行插入时 , 该列初始的值
* 有一些系统变量的值既有着GLOBAL作用周围 , 也有着SESSION作用周围 , 例如我们前边用到的default_storage_engine , 而且其实一大半的系统变量都是这样的
一些系统变量是只读的 , 并不应该设置值比方说version , 表示目前MySQL的版本 , 我们软件是不应该设置它的值的 , 就只能在SHOW VARIABLES语句里查看 。
启动选项与系统变量的关系启动选项是在程序启动时我们程序员传递的一些参数 , 而系统变量是波及服务器程序运行行为的变量
* 一大半的系统变量都应该被当作启动选项传入
* 一些系统变量是在程序运行过程中全自动生成的 , 是不应该当作启动选项来设置 , 例如auto_increment_offset、character_set_client啥的
* 一些启动选项也不是系统变量 , 例如defaults-file
状态变量为了让我们更加好的了解服务器程序的运行状态 , MySQL服务器程序中保护了超级多关于程序运行状态的变量 , 它们被称为状态变量 。
比方说Threads_connected表示目前有多少软件与服务器建立了连接 , Handler_update表示已经更新了多少行记录
由于状态变量是用来展现服务器程序运行状况的 , 所以它们的值就只能由服务器程序自己来设置 , 我们程序员是不应该设置的
查看格式:
SHOW [GLOBAL|SESSION] STATUS [LIKE 匹配的模式];
例如:
【启动数据库命令mysql mysql启动命令是什么】SHOW STATUS LIKE 'thread%';

推荐阅读