数据库
首页 > 数据库> > MySQL 的启动项、配置文件 和 系统变量

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 匹配模式]

标签:变量,配置文件,default,mysql,启动项,设置,MySQL
来源: https://blog.csdn.net/qq_41010280/article/details/120751696