命令格式:
启动命令 --启动选项1[=值1] --启动选项2[=值2] … --启动选项n[=值n]
例如:
mysqld --default-storage-engine=MyISAM //设置默认存储引擎
错误例子:
mysqld --default-storage-engine = MyISAM //设置默认存储引擎
原因:
因为启动项和值之间的等号不能有空格
参数的长形式和短形式
配置参数有长形式和短形式之分,有些作用是一样的,只是写法不同而已
–host => -h //主机
–port => -P // 端口
–user => -u //用户
–password => -p //密码
–version => -V //版本
…
例子:
mysqld --port=3306
mysqld -P3306
mysqld -P 3306
注意:
密码不能有空格
mysqld -proot
配置文件
配置文件my.cnf的位置,有可能是以下的几种,如MySQL服务启动时未指定配置文件时,会从以下地方查找读取并初始化。
- /etc/my.cnf
- /etc/mysql/my.cnf
- defaults-extra-file //指定的额外配置文件路径
- SYSCONFDIR/my.cnf //cmake编译安装情况
- $MYSQL_HOME/my.cnf //设置环境变量,默认安装路径
- ~/.my.cnf //用户特定选项,家目录
- ~/.mylogin.cnf //用户特定的登录路径选项(仅限客户端),mysql_config_editor修改,不是纯文件
注意
- 在配置文件中指定的启动选项不允许加–前缀,并且每行只指定一个选项,而且=周围可以有空白字符
- 如果我们在多个配置文件中设置了相同的启动选项,那以最后一个配置文件中的为准
- 如果同一个启动选项既出现在命令行中,又出现在配置文件中,那么以命令行中的启动
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
选项为准
- mysqld --defaults-file=/tmp/myconfig.txt
//在程序启动的时候将只在/tmp/myconfig.txt路径下搜索配置文件。如果文件不存在或无法访问,则会发生错误
配置组
配置文件一共可以以下这些组别:mysqld、mysqld_safe、mysql.server、mysql、mysqladmin、mysqldump,可以针对不同组别进行配置
内容格式
[server]
(具体的启动选项…)
[mysqld]
(具体的启动选项…)
[mysqld_safe]
(具体的启动选项…)
[client]
(具体的启动选项…)
[mysql]
(具体的启动选项…)
[mysqladmin]
(具体的启动选项…)
例子:
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
log-error = /var/log/mysql/error.log
优化配置
wait_timeout=10
back_log=600
key_buffer_size = 2048M
read_buffer_size = 100M
max_allowed_packet = 1000M
thread_stack = 192K
thread_cache_size = 4
myisam-recover-options = BACKUP
max_connections = 4000
max_user_connections = 0
max_connect_errors = 65535
open_files_limit = 10240
…
注意
- [server]组下边的启动选项将作用于所有的服务器程序,如mysqld、mysqld_safe、mysql.server
- [client]组下边的启动选项将作用于所有的客户端程序,如mysql、mysqladmin、mysqldump
- 同一个配置文件中多个组的优先级,将以最后一个出现的组中的启动选项为准
系统变量
MySQL服务器程序运行过程中会用到许多影响程序行为的变量,它们被称为MySQL系统变量。
例如:
- 允许同时连入的客户端数量用系统变量max_connections表示
- 表的默认存储引擎用系统变量default_storage_engine表示
- 查询缓存的大小用系统变量query_cache_size表示
…
查看
格式:
SHOW VARIABLES [LIKE 匹配的模式];
例如:
SHOW VARIABLES LIKE ‘default_storage_engine’;
设置
通过启动项设置
命令行设置
mysqld --default-storage-engine=MyISAM --max-connections=10
配置文件设置
[mysqld]
default-storage-engine = MyISAM
max-connections = 10
…
注意:
对于启动选项来说,如果启动选项名由多个单词组成,各个单词之间用短划线-或者下划线_连接起来都可以,但是它对应的系统变量的单词之间必须使用下划线_连接起来(即通过show查看或set设置时)
服务器程序运行过程中设置
系统变量比较牛逼的一点就是,对于大部分系统变量来说,它们的值可以在服务器程序运行过程中进行动态修改而无需停止并重启服务器
不过系统变量有全局和当前会话作用域之分
作用域
GLOBAL:全局变量,影响服务器的整体操作。
SESSION:会话变量,影响某个客户端连接的操作。(别名叫LOCAL)
格式:
1. SET [GLOBAL|SESSION] 系统变量名 = 值;
2. SET [@@(GLOBAL|SESSION).]var_name = XXX;
global