MySQL5.7設(shè)置變量的幾種方法
查看Mysql當前所有的變量:
mysql> show variables;
mysql5.7 官網(wǎng)對變量的解釋:
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html
變量的分類:
MYSQL 中的變量可以分為global(全局)變量和session(會話)變量
在MySQL中要修改變量,有兩種方法:
方法一:
持久化變量,重啟完數(shù)據(jù)庫生效
修改my.cnf配置文件,如果要設(shè)置全局變量最簡單的方式是在my.cnf 文件中直接寫入變量配置,重啟數(shù)據(jù)庫服務(wù)就可以使全局變量生效。
比如:
vim /etc/my.cnf
.........
[mysqld]
.........
wait_timeout = 300
.........
方法二:
變量臨時生效,重啟mysql后恢復(fù)原樣
1、在不修改配置文件的基礎(chǔ)上,使用關(guān)鍵字global設(shè)置全局變量
mysql> set global autocommit=1;
將autocommit變量的值設(shè)置為ON
需要注意的是,使用此方法對global全局變量的設(shè)置僅對于新開啟的會話才是有效的,對已經(jīng)開啟的會話不生效。
2、在不修改配置文件的基礎(chǔ)上,MySQL中要修改會話(session)變量,可以使用session關(guān)鍵字,如:
mysql> set autocommit=1; 【set 不加參數(shù),默認就是session】
等同于 mysql> set session autocommit=1;
修改session變量配置,僅僅是對本session的變量配置有效,設(shè)置完成后只對當前終端有效,對其他session 無效,
其他:
雖然設(shè)置了global變量、session變量,但是在mysql服務(wù)重啟之后,數(shù)據(jù)庫的配置又會重新初始化,一切按照my.cnf的配置進行初始化。global和session的配置都會失效了。