1、mysqld服务器程序:工作特性的定义方式
命令行选项
配置文件参数
2、服务器参数/变量:设定MySQL的运行特性;
mysql> SHOW GLOBAL VARIABLES [LIKE clause]; mysql> SHOW SESSION VARIABLES [LIKE clause]; 比如:查看全局和session的变量 mysql> show global variables\G; mysql> show session variables\G;
3、状态(统计)参数/变量:保存MySQL运行中的统计数据或状态数据;
mysql> SHOW GLOBAL | [SESSION] STATUS [LIKE clause]; 比如: mysql> show session status like "Tc%" \G; *************************** 1. row *************************** Variable_name: Tc_log_max_pages_used Value: 0 *************************** 2. row *************************** Variable_name: Tc_log_page_size Value: 0 *************************** 3. row *************************** Variable_name: Tc_log_page_waits Value: 0 3 rows in set (0.00 sec)
4、显示单个变量设定值的方法:感觉这个和第二种是一样的
%:匹配任意长度的任意字符;
_:匹配任意单个字符;
mysql> SELECT @@[global.]system_var_name mysql> SELECT @@[session.]system_var_name 例如: mysql> select @@tx_isolation; +-----------------+ | @@tx_isolation | +-----------------+ | REPEATABLE-READ | +-----------------+ 1 row in set (0.00 sec) mysql> select @@global.tx_isolation; +-----------------------+ | @@global.tx_isolation | +-----------------------+ | REPEATABLE-READ | +-----------------------+ 1 row in set (0.00 sec) mysql> select @@session.tx_isolation; +------------------------+ | @@session.tx_isolation | +------------------------+ | REPEATABLE-READ | +------------------------+ 1 row in set (0.00 sec) mysql> show global variables like '%tx_isolation%'; #和上面是一样的 +---------------+-----------------+ | Variable_name | Value | +---------------+-----------------+ | tx_isolation | REPEATABLE-READ | +---------------+-----------------+ 1 row in set (0.00 sec)
5、变量/参数级别:
全局:为所有会话设定默认;
会话:跟单个会话相关;会话建立会从全局继承;
6、服务器变量的调整方式:
运行时修改作用范围:
global:仅对修改后新建立的会话有效;
session:仅对当前会话有效,且立即生效;
启动前通过配置文件修改:
重启后生效;
7、运行时修改变量值操作方法:
mysql> HELP SET SET [GLOBAL | SESSION] system_var_name = expr #第一种设置方法 SET [@@global. | @@session. | @@]system_var_name = expr #第二种设置方法 mysql> set global autocommit=0; #示例1 mysql> set @@global.autocommit=0; #示例2 mysql> select @@global.autocommit; #查看设置 以下测试在mariadb上是正常的,但是在centos6上面的mysql中不行,差别挺大的 MariaDB [(none)]> select @@global.autocommit; +---------------------+ | @@global.autocommit | +---------------------+ | 1 | +---------------------+ 1 row in set (0.00 sec) MariaDB [(none)]> select @@session.autocommit; +----------------------+ | @@session.autocommit | +----------------------+ | 1 | +----------------------+ 1 row in set (0.00 sec) MariaDB [(none)]> set global autocommit=0; #设置全局变量为0后,对新建立的会话生效,当前会话不变 Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> select @@global.autocommit; +---------------------+ | @@global.autocommit | +---------------------+ | 0 | +---------------------+ 1 row in set (0.00 sec) MariaDB [(none)]> select @@session.autocommit; #当前会话依然不变 +----------------------+ | @@session.autocommit | +----------------------+ | 1 | +----------------------+ 1 row in set (0.00 sec) ############## !!!!!! 设置完成后注意刷新数据库,保存配置,不然设置完成后直接退出,可能造成配置没有设置成功,最好退出终端,然后再进入查看下是否设置成功 要想永久有效,修改配置文件 [root@localhost ~]#vim /etc/my.cnf autocommit=0 [root@localhost ~]#systemctl restart mariadb.service MariaDB [(none)]> select @@global.autocommit; +---------------------+ | @@global.autocommit | +---------------------+ | 0 | +---------------------+ 1 row in set (0.00 sec) MariaDB [(none)]> select @@session.autocommit; +----------------------+ | @@session.autocommit | +----------------------+ | 0 | +----------------------+ 1 row in set (0.00 sec)
8、centos6默认情况下,如果要设置为永久有效,只用在这里写变量名就可以。不用写等于,写等于ON不生效,奇怪
centos7的mariadb不管是写:general_log,还是写:general_log = ON,都可以生效,这里要注意
mysql> show global variables like 'general_log'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | general_log | OFF | +---------------+-------+ [root@localhost ~]#vim /etc/my.cnf #如果要设置为永久有效,只用在这里写变量名就可以。不用写等于,写等于ON不生效,奇怪 general_log [root@localhost ~]#service mysqld restart mysql> show global variables like 'general_log'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | general_log | ON | +---------------+-------+ 1 row in set (0.00 sec)
9、安装完成后的安全初始化:
mysql_secure_installation
10、运行前常修改的参数:
innodb_file_per_table=ON skip_name_resolve=ON ...
注意,如果mysql服务器已经正常运行了一段时间了,尽量不要再修改配置文件,会导致想不到的结果,
–
–
–
评论前必须登录!
注册