启动客户端程序时在-h参数后边紧跟服务器的IP地址,这就意味着客户端和服务器之间需要通过TCP/IP网络进行通信。如果在启动服务器程序的时候就禁止客户端使用TCP/IP网络进行通信,可以在启动服务器程序的命令行里添加skip-networking启动选项。如:
mysqld --skip-networking
其中skip-networking也可以写成skip_networking。
创建表的语句中没有显示指定表的存储引擎的话,就会默认使用InnoDB作为表的存储引擎,改变表的默认存储引擎:
mysqld --default-storage-engine=MyISAM
每个MySQL程序都有许多不同的选项,使用--help选项可以查看该程序支持的全部启动选项以及他们的默认值。
mysql --help(MySQL程序支持的启动选项)
mysql_safe --help(mysql_saf程序支持的启动选项)
mysqld --verbose --help(mysqld 支持的的启动选项)
选项的长形式和短形式(注意区分大小写)
把需要设置的启动选项写在配置文件中,每次启动服务器的时候都从这个配置文件里加载相应的启动选项,也称为选项文件。
配置文件路径
配置文件内容:启动选项被划分为若干个组,每组有一个组名,用中括号[]括起来。
特定MySQL版本专用选项组:[mysqld]选项组,可以定义一个[mysqld-5.7]的选项组,只有版本号为5.7的mysqld程序才能使用这个选项组中的选项。
配置文件的优先级:命令行指定default-extra-file启动选项来指定额外的配置文件路径。MySQL将按照我们给定的顺序依次读取各个配置文件,如果该文件不存在则忽略。如果我们在多个配置文件中设置了相同的启动选项,那以最后一个配置文件中的为准。
同一个配置文件中的多个组的优先级:同一个命令可以访问配置文件中的多个组,比如mysqld可以访问[mysqld]、[server]组,如果在同一个配置文件中,将以最后出现的组中的启动选项为准。
default-file的使用:不想让MySQL到默认的路径下搜索配置文件,可以在命令行指定:
mysqld --default-file=/tmp/myconfg.txt
这样如果文件不存在或无法访问,则会发生错误。
在命令行上指定的绝大部分启动选项都可以放到配置文件中,但一些是专门为命令行设计的,放在配置文件没意义。还有一些只能用在命令行中。如果同一个启动选项即出现在命令行中,又在配置文件中,那么以命令行为准。
MySQL服务器程序运行过程中会用到许多影响程序行为的变量,它们被称为MySQL系统变量。每个系统变量都有一个默认值,我们可以使用命令行或者配置文件中的选项在启动服务器时改变一些系统变量的值。大多数系统变量的值也可以在程序运行的过程中修改,而无需停止并重新启动它。
show variables [like 匹配的模式]
通过启动选项设置
[server]
default-storage-engine=MyISAM
max-connections=10
对于启动选项来说,如果启动选项名由多个单词组成,各个单词之间用短划线-或者下划线_连接起来都可以,但对应的系统变量必须使用下划线_连接起来。
服务器运行过程中设置
对于大部分系统变量来说,它们的值可以在服务器程序运行过程中动态修改而无需停止并重启服务器。
GLOBAL:全局变量,影响服务器的整体操作
SESSION:会话变量,影响某个客户端连接操作。(SESSION有个别名叫LOCAL)
通过启动选项设置的系统变量的作用范围都是GLOBAL的,也就是对所有客户端都有效
SET [GLOBAL|SESSION] 系统变量名=值
SET [@@(GLOBAL|SESSION).]var_name=xxx;
之后连接到服务器的客户端都使用MyISAM作为默认的存储引擎
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 variables语句查看的是SESSION作用范围的系统变量
show [global|session] variables [like 匹配模式]
并不是所有系统变量都具有GLOBAL和SESSION的作用范围
有些系统变量是只读的,并不能设置值
启动选项和系统变量的区别
启动选项是程序启动时传递的一些参数,系统变量是影响服务器程序运行行为的变量
为了让我们更好的了解服务器程序的运行状况,MySQL服务器程序中维护了很多关于程序运行状态的变量,被称为状态变量。
他们的值只能由服务器程序自己来设置。也有GLOBAL和SESSION两个作用范围
show [global|session] status [like 匹配模式]
不写明作用范围,默认的作用范围是SESSION