mysql变量当做参数,mysql变量参数设置

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服务器已经正常运行了一段时间了,尽量不要再修改配置文件,会导致想不到的结果,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值