1.要显示已配置的服务器选项可以有哪几种方法,分别举例说明。
答:1)在MySQL提示符下:SHOW GLOBAL VARIABLES
2)在命令行中,如果服务器正在运行:mysqladmin variables
-前面的命令还显示了在启动MySQL之后动态更改的值
3)在命令行,即使服务器没有运行:mysql --verbose --help
与mysql命令的其他变体不同,该命令不启动mysqld进程
2. 使用选项文件有哪些好处?
答:1.每次启动服务器时,不需要在命令行上指定选项
1)更方便 2)复杂选项不易出错
2.使得可以通过查看选项文件以在一个位置查看服务器配置
3.可以使用分组选项创建多个配置,每个配置都在其自己的配置文件中
1)使用不同的配置在同一主机上启动多个服务器
2)使用替代配置启动测试或开发服务器
3. 给出在 Linux 系统上的标准选项文件的名称和保存的位置。
答:1)文件、etc/my.cnf用作所有用户使用的全局选项文件
2)在用户的主目录中创建名为.my.cnf的用户特定选项文件
3)如果设置了MYSQL_HOME环境变量,它会搜索$MYSQL_HOME/my.cnf文件
4. 请说明选项文件中的 [client] 和 [server] 组的适用范围。
答:[client]:适用于所有客户端程序的选项
-通常用于指定所有客户端通用的链接参数
[server]:适用于所有服务器程序或脚本的选项
5. 如果在多个配置文件中指定了一个相同的选项值,或者在同一配置文件内的多个组中指定了相同的选 项值,系统如何处理?
答:1)MySQL程序按定义的顺序读取配置文件
-使用program --help [--verbose]查看
2)MySQL程序从多个选项组中读取选项
-例子:mysqld从[mysqld] [server]和[mysqld-8.0]组读取
3)如多在多个配置文件中指定了一个选项值,则后面文件中的选项会覆盖前面文件中的选项
4)如果在同一文件内的多个组指定了一个选项值,则文件中交完的选项优先
6. 请说明 --no-defaults 命令行长选项的作用。
答:不读取任何选项文件
7. MySQL 维护的变量从作用域分为 GLOBAL 和 SESSION,从功能上分为动态和持久的,你是如何理解的。
答:GLOBAL:变量影响服务器的整体运行
SESSION:变量影响单个客户段连接
动态:1)在运行时更改动态变量以避免更改选项文件和重新启动服务器
2)如果更改变量具有全局和会话范围的变量:-更改全局变量会影响所有新连接-更改会话变量会影响当前连接
持久的:使用SET PERSIST variable_name = value 在服务器重新启动时维护全局变量值
-使用DEFAULT 代替value恢复默认值
-需要以下服务器权限:SYSTEM_VARIABLES_ADMIN -PERSIST_RO_VARIABLES_ADMIN
-将mysqld-auto.cnf 文件中更改的详细信息在数据目录中,以JSON格式存储:
-变量名和当前值 -任何以及由谁进行更改
8. 要查看系统变量,有哪几种常用的办法,举例说明。
答:1)列出所有可用的变量及其值:
SHOW [GLOBAL | SESSION] VARIABLES;
列出特定的变量值:
Mysql> SHOW VARIABLES LIKE ‘read_only’;
设置一个新值,然后显示:
mysql>SET GLOBAL read_only=ON;
mysql>SHOW VARIABLES LIKE ‘read_only’;
2)使用Performance Schema查看变量
1.global_variables和session_variables表包含全局变量和当前会话变量
2.variables_by_thread表包含所有活动线程的会话变量
-引用thread_id,详见threads表
mysql>SELECT VARIABLES_VALUE FROM global_variables
>WHERE VARIABLES_NAME=’pid_file’;
mysql>SELECT VARIABLES_VALUE FROM variables_by_thread
>WHERE THREAD_ID=27 AND VARIABLES_NAME=’sort_buffer_size’;
9.在同一台服务器上启动多个 mysqld 实例时,必须要隔离的对象有哪些?
答:数据目录
连接层
日志和PID文件
InnoDB表空间和日志文件