MySQL 的启动项、配置文件 和 系统变量

启动项

重新启动才生效

命令行修改 (当次生效)

  1. 禁止TCP/IP网络通信
mysqld --skip-networking
  1. 设置默认存储引擎
mysqld --default-storage-engine=MyISAM (不能有空格)

配置文件修改 (永久生效)

mysql 会去多个地方找配置文件,主要按以下顺序(UNIX):

路径名备注
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnfSYSCONFDIR :CMake 构建mysql指定的位置
$MYSQL_HOME/my.cnf$MYSQL_HOME:我们自己设置的环境变量。只能放服务端的设置
defaults-extra-file命令行指定的额外配置文件路径
~/.my.cnf针对特定用户
~/.mylogin.cnf针对特定用户。只能放客户端设置。

配置文件的格式如下:

[server]
(具体的启动项..)

[mysqld]
(具体的启动项..)

[mysqld_safe]
(具体的启动项..)

[client]
(具体的启动项..)

[mysql]
(具体的启动项..)

[mysqladmin]
(具体的启动项..)

不同的组给不同的程序用,server是给所有服务端程序用,client同理。我们也可以设置特定版本才能用的组[mysql-5.7]

配置文件优先级

按顺序搜索配置文件,最后搜索到的配置文件优先级最高。同一个文件,后边的能覆盖前面的,命令行的配置项优先级最高。
我们可以用如下语句指定mysql只搜索一个配置文件:

mysqld --default-file=/tmp/myconfig.txt

注意:这个和之前的defaults-extra-file可不一样

系统变量

无须重新启动就可以生效

查看系统变量

我们可以用如下语句来查看:

SHOW VARIABLES [LIKE 匹配模式]
设置系统变量

当然我们可以把这些系统变量当成启动项,在命令行或者配置文件中设置,上边已经介绍了很多方法,这里就不细说了。(需要注意的是,启动项各个单词可以用 ‘-’ 或 ‘_’ 连接,而系统变量只能用 ‘_’ )。 下边我们主要说一下如何在服务器运行时改变。

首先,我们先将变量设置根据影响范围分为:

  • 全局变量:影响服务器的整体操作。
  • 会话变量:影响某个客户端连接的操作。

我们设置全局变量时可以这样写:

SET GLOBAL default_storage_engine = MyISAM;
SET@@GLOBAL.default_storage_engine = MyISAM;

设置会话变量时这样写:

SET SESSION default_storage_engine = MyISAM;
SET @@SESSION.default_storage_engine = MyISAM;
SET default_storage_engine = MyISAM; (说明不指定时就是会话变量)

我们要查看全局或者会话变量时可以用如下语句:

SHOW [GLOBAL | SESSION] VARIABLES [LlKE 匹配的模式]; (默认显示会话变量)

注意:

  1. 若改了全局变量,不会影响已连接的用户,之后会受影响。
  2. 不是所用变量都有全局会话之分。(例如,max_connections 只能是全局)
  3. 有些变量是只读不能改。(例如,version)
  4. 部分系统变量可以作为启动项设置,有的系统变量时启动后才有(character_set_client), 有的启动项也不是系统变量(defaults-file)

除此之外,我们还可以用如下语句查看系统运行状态变量,但是不能修改:

SHOW [GLOBAL | SESSION] STATUS [LIKE 匹配模式]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从前慢慢慢死了

打钱!一分也行啊!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值