有没有办法在共享主机中找到 my.cnf?

Ali*_*eza 7 mysql mysql-5

我很好奇有没有办法在共享主机中找到 my.cnf 或者这个文件只能由 DBA 配置而没有人可以设置他/她自己的设置?

Rol*_*DBA 8

在共享主机环境中,您无法访问 my.cnf

您可以通过其他方式查看变量:

显示变量

  • SHOW VARIABLES;将显示所有设置的变量。有些可以在您的会话中使用SET命令动态更改。有些可以在服务器中设置,以便新的数据库连接可以使用新设置的值。

  • SHOW VARIABLES LIKE 'innodb%' 显示所有 innodb 设置

  • SHOW VARIABLES LIKE '%timeout' 显示所有超时设置

  • SHOW VARIABLES LIKE '%buffer%' 显示所有缓冲区

##INFORMATION_SCHEMA

您还可以通过 INFORMATION_SCHEMA 数据库访问这些变量。访问这些值的表是

使用这些表的相同请求是

  • SHOW VARIABLES; 变成 SELECT * FROM information_schema.global_variables;
  • SHOW VARIABLES LIKE 'innodb%' 变成 SELECT * FROM information_schema .global_variables WHERE VARIABLE_NAME LIKE 'innodb%';
  • SHOW VARIABLES LIKE '%timeout' 变成 SELECT * FROM information_schema .global_variables WHERE VARIABLE_NAME LIKE '%timeout';
  • SHOW VARIABLES LIKE '%buffer%' 变成 SELECT * FROM information_schema .global_variables WHERE VARIABLE_NAME LIKE '%buffer%';

INFORMATION_SCHEMA.SESSION_VARIABLES 存在的原因是查看您的会话设置,如果您在会话期间将变量更改为与全局设置不同的内容。

例子

  • SET GLOBAL max_connections = 1000; 现在将允许 1000 个数据库连接
  • SET sort_buffer_size = 1024 * 1024 * 8; 将您的会话 sort_buffer_size 设置为 8M
  • SET GLOBAL sort_buffer_size = 1024 * 1024 * 8; 将所有传入数据库连接的会话 sort_buffer_size 设置为 8M

警告

请记住,并非所有设置都可以动态更改。某些值,例如sort_buffer_size (session or global) 和max_connections (global only [session is N/A]),例如innodb_buffer_pool_sizelower_case_table_names,只能通过在 my.cnf 中设置并重新启动 mysqld 来更改。

单击此处查看变量列表、它们的默认值和它们的会话特性