Mysql

有沒有辦法在共享主機中找到 my.cnf?

  • September 1, 2021

我很好奇有沒有辦法在共享主機中找到 my.cnf 或者這個文件只能由 DBA 配置而沒有人可以設置他/她自己的設置?

在共享主機環境中,您無法訪問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(會話或全域)和max_connections(僅全域

$$ session is N/A $$),例如innodb_buffer_pool_sizelower_case_table_names,只能通過在 my.cnf 中設置並重新啟動 mysqld 來更改。 點擊此處查看變數列表、它們的預設值和它們的會話特徵

引用自:https://dba.stackexchange.com/questions/10014