Làm thế nào để làm cho trường hợp tên bảng MySQL không nhạy cảm trong Ubuntu?


44

Tôi đang sử dụng Ubuntu 13.10 và MySQL 5.6 và tôi biết tên cơ sở dữ liệu và tên bảng có phân biệt chữ hoa chữ thường trong Ubuntu (và một số môi trường * nix khác) theo mặc định.

Bây giờ, tôi muốn làm cho MySQL hoạt động như trường hợp không nhạy cảm trong Ubuntu.

Có thể không? Nếu có, làm thế nào tôi có thể làm điều đó?

Câu trả lời:


51

Mở terminal và chỉnh sửa /etc/mysql/my.cnf

sudo nano /etc/mysql/my.cnf

Bên dưới [mysqld]phần.add:

lower_case_table_names = 1

Khởi động lại mysql

sudo /etc/init.d/mysql restart

Sau đó kiểm tra nó ở đây:

mysqladmin -u root -p variables

2
Bạn phải thêm phần này nếu nó không có sẵn. Nếu không, việc khởi động lại sẽ thất bại.
alexander

10

Nếu bạn thay đổi lower_case_table_namestrong một DB với các bảng hiện có thì MySQL> Bảng không tồn tại. Nhưng nó (hoặc nó nên) có thể xảy ra.

Nhận xét cho câu trả lời này đã giúp tôi trong trường hợp này:

Tôi đã hoàn nguyên giá trị, khởi động lại cơ sở dữ liệu, xuất các bảng, đặt giá trị trở lại 1, khởi động lại cơ sở dữ liệu, nhập lại các bảng và mọi thứ hoạt động trở lại.


5

Vấn đề này đã gây đau khổ cho tôi, nơi mà Doctrine đã tạo vốn / tên bảng CamelCase và MySQL lưu trữ chúng dưới dạng chữ thường!

Nó đã được giải quyết bằng cách thay đổi my.cnfvà thêm

lower_case_table_names = 1

trong phần [mysqld]

my.cnf có thể được tìm thấy:

  • trong LAMPP / XAMPP ...:

    /opt/lampp/etc/my.cnf

  • máy chủ mysql độc lập:

    /etc/mysql/my.cnf

Sau đó khởi động lại máy chủ MySQL và mọi thứ sẽ ổn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.