一般在启动的时候加的参数称为启动选项,启动选项可以在配置文件中设置,也可以以启动参数的形式设置,对于服务度的启动mysqld或者mysqld_safe等还是客户端的启动mysql或者mysqladmin的启动都可以设置启动项。
1、禁止使用tcp/ip
mysqld --skip-networking
2、设置服务器使用的存储引擎
mysqld --default-storage-engine=MYISAM
3、查看启动命令有哪些启动选项
mysql/mysqladmin/mysql_safe --help
注意:对于mysqld是mysqld --verbose --help
注意:
1、对于启动项而言只能是–选项1=[参数1] --选项2=[参数2]的形式,对于选项名,=,选项值之间不能有空格。
2、上面是选项的长形式,也有选项的短形式,即用字母来代替,比如-u代表–user,-P代表–port,-p代表–password,注意此时用短形式的话选项名和选项值之间可以用空格隔开,但是对于密码的-p不行。
1、配置文件的使用路径
其中可以用defaults-extra-file来指定额外配置路径
注意:如果mysqld_safe会调用mysqld来启动,所以,如果mysql_safe不能识别的启动项会交由mysqld来执行。
2、配置文件的内容
配置文件中被划分为多个选项组
[server]
[mysqld]
[mysql_safe]
[mysql.server]
[client]
[mysql]
[mysqladmin]
[mysqldump]
注意在配置文件中,如果是选项名=选项值得时候,选项名,=,选项值之间不能有空白符号。
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306
并且不同的选项组用于不同的程序,如mysqld只能用于mysqld启动的程序,而mysql只能用于mysql启动的程序,但是client可以用于所有客户端程序,server可以用于所有服务器程序。
3、特点MYSQL版本使用专用选项组
[mysqld-5.7]
#上面选项组便只能用于5.7版本的mysqld启动程序
4、配置文件的优先级
一般命令行中的启动选项优先级高于defaults-extra-file中的优先级高于其他地方配置文件中的优先级;
如果是在同一个配置文件中,以出现到最后的配置为准。
5、defaults-file的使用
如果不想在默认配置文件中搜索,则可以指定具体的配置文件位置,用defaults-file=文件位置来指定。
系统变量可以在服务器运行过程中修改,无需重新启动。常见的如default_storage_engine默认的存储引擎,max_connection表示可以连接的客户端的数目。
show variables like ''
1、通过启动项设置
此时可以通过命令设置启动选项或者修改启动配置文件设置
mysqld --default-storage-engine=MYISAM
注意此时修改的变量的作用域都是GLOBAL的。
2、服务器运行时设置
根据服务器的范围不同分为不同的作用范围:
GLOBAL:作用于全局范围,影响服务器的操作,一般称为全面变量。
SESSION:影响某个客户端连接,具有SESSION范围的变量称为会话变量。
并且服务器启动时会为每个GLOBAL的变量分配默认值,然后当有客户端连接服务器的时候,通过GLOBAL的变量的值初始化对应客户端的SESSION变量。
设置全局变量
set GLOBAL 变量名=变量值
#SET GLOBAL default_storage_engine=MYISAM
set @@GLOBAL.变量名=变量值
注意此时表示后面连接到服务器的客户端的default_storage_engine为MYISAM。
设置会话变量
set SESSION 变量名=变量值
set @@SESSION.变量名=变量值
set 变量名=变量值
此时可以看出省略作用范围表示的是会话变量,并且表示当前客户端的会话变量为对应的值。
查看系统变量
#查看全局变量
show GLOBAL variables LIKE ''
#查看局部变量
SHOW SESSION VARIABLES LIKE ''
注意:如果有global表示查看全局变量,如果没有该变量便不显示他,使用session显示当前的session变量,如果没有显示全局变量。并且session可以省略。
客户端改变某个系统变量的GLOBAL的值,并不会影响当前已经连接的客户端的session值,而是影响的是新连接的客户端的session值
状态变量表示服务器的运行情况,其中只能由服务器自己设置,不能人为设置。
其中显示状态变量为:
show [global|session] status like ''
其中session可以省略。