Czy w nazwach tabel w MySQL rozróżniana jest wielkość liter?
Na moim komputerze programistycznym z systemem Windows kod, który mam, jest w stanie przeszukiwać moje tabele, które wydają się być małe. Kiedy wdrażam na serwer testowy w naszym centrum danych, nazwy tabel wydają się zaczynać od dużej litery.
Wszystkie serwery, których używamy, znajdują się w systemie Ubuntu.
mysql
case-sensitive
mysql5
benstpierre
źródło
źródło
Odpowiedzi:
Ogólnie:
W nazwach baz danych i tabel nie jest rozróżniana wielkość liter w systemie Windows i wielkość liter w większości odmian systemu Unix.
Można skonfigurować sposób przechowywania nazw tabel na dysku za pomocą zmiennej systemowej
lower_case_table_names
(w pliku konfiguracyjnym my.cnf w [mysqld]).Przeczytaj rozdział: 10.2.2 Rozróżnianie wielkości liter w identyfikatorze, aby uzyskać więcej informacji.
źródło
W nazwach baz danych i tabel nie jest rozróżniana wielkość liter w systemie Windows oraz wielkość liter w większości odmian systemów Unix i Linux.
aby rozwiązać ten problem, ustaw lower_case_table_names na 1
dzięki temu wszystkie tabele będą pisane małymi literami, niezależnie od tego, jak je napiszesz
źródło
Nazwy tabel w MySQL są wpisami systemu plików, więc wielkość liter nie jest rozróżniana, jeśli bazowy system plików to.
źródło
Zależy to od
lower_case_table_names
zmiennej systemowej:Istnieją trzy możliwe wartości:
0
- wielkość liter określona w instrukcjiCREATE TABLE
lubCREATE DATABASE
. Porównania nazw uwzględniają wielkość liter.1
- Nazwy tabel są przechowywane na dysku małymi literami, a porównania nazw nie uwzględniają wielkości liter.2
- litera określona w instrukcjiCREATE TABLE
lubCREATE DATABASE
, ale MySQL konwertuje je na małe litery podczas wyszukiwania. Porównania nazw nie uwzględniają wielkości liter.Dokumentacja
źródło
Zlokalizuj plik w
/etc/mysql/my.cnf
Edytuj plik, dodając następujące wiersze:
[mysqld]
lower_case_table_names=1
sudo /etc/init.d/mysql restart
biegnij,
mysqladmin -u root -p variables | grep table
aby sprawdzić, czylower_case_table_names
to1
terazMoże być konieczne ponowne utworzenie tych tabel, aby działały
źródło