Mysql

linux mysql 不區分大小寫 lower_case_table_names=1 使伺服器無法啟動

  • February 7, 2020

我在 linux ubuntu 中使用 mysql 我想lower_case_table_names = 1/etc/mysql/my.cnf文件中設置。但是我插入變數後,mysql伺服器無法啟動。

有沒有辦法lower_case_table_namesmy.cnf文件中設置或其他方式來設置它?

我以前做過,但它是在 centos 中,mysql 伺服器是手動啟動的。

謝謝你。

  1. 通過從 mysql 網站下載文件配置安裝mysql-apt-config_0.8.14-1_all.deb(選項,如果你想安裝 mysql 8)。
  2. 安裝 mysql sudo apt-get install mysql-server
  3. my.cnf在中打開文件/etc/mysql,使用sudo nano /etc/mysql/my.cnf.
  4. 插入lower_case_table_names = 1,如下所示:

[mysqld] lower_case_table_names = 1 5. 保存文件my.cnf。 6. 備份文件夾/etc/mysql,比如sudo cp -r /etc/mysql /etc/mysql.bak 7. 刪除 mysql 安裝使用sudo apt-get remove -y mysql-*sudo apt-get purge -y mysql-*. 8. 把文件夾複製回來/etc/mysql.bak,就好了sudo cp-r /etc/mysql.bak /etc/mysql。 9. 回到第 1 步和第 2 步。在第 2 步中,安裝會詢問您是否將配置文件保存在文件夾中/etc/mysql或使用安裝時的預設值。所以,我使用以前安裝的配置文件(N)。 10. 完成安裝 11. 檢查文件my.cnf。它應該是帶有 的文件lower_case_table_names = 1,如第 4 步。

安裝後mysql會讀取lower_case_table_names = 1.

希望這可以提供幫助。

  1. Ubuntu / CentOS 的預設值為 0(至少)。
  2. 如果您在具有數據庫/表的正在執行的伺服器上更改此設置,則可能會損壞文件。請參閱https://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitive.html在“0”的“含義”段落中。

由於您沒有發布錯誤消息,我假設您已經有帶有索引文件的表,並且為了防止數據損壞,它不會安全地重新啟動。

如果在安裝 MySQL 伺服器時就設置了此項,則會通過。當您想將其更改為現有伺服器時,它會引發錯誤。

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