2010-05-19 20 views
8

Tôi có một xuất từ ​​cơ sở dữ liệu MYSQL trên máy linux tuy nhiên khi nhập cơ sở dữ liệu đó vào MYSQL trên cửa sổ, tất cả các tên bảng bị lạc đà đều là chữ thường. Các sql dump có trường hợp chính xác trong nó, nhưng việc nhập khẩu thông qua phpmyadmin seams để loại bỏ các.Duy trì độ nhạy trường hợp khi nhập db vào cửa sổ

Làm cách nào để nhập và giữ trường hợp?

Trả lời

9

Có một cài đặt cho mysql cho phép phân biệt chữ hoa trong cửa sổ. Bạn cần chỉnh sửa tệp my.cnf và thay đổi cài đặt:

lower_case_table_names=2 

Sau đó khởi động lại mysql.

Nếu không, đây có thể là trường hợp của trường hợp thay đổi phpmyadmin theo cách nó chuyển truy vấn đến máy chủ chứ không phải là vấn đề với Linux-to-windows. Bạn đã thử nhập vùng kết xuất sql bằng cách sử dụng một trình quản lý mysql khác chẳng hạn như SQLyog? (Tools -> Restore từ SQL Dump ...)

+0

Thanks for the help, nhưng ngay cả với thiết rằng lệnh (mà không phải là trong ini, phải thêm nó sau [mysqld]), khởi động lại mysql và sau đó sử dụng dòng lệnh để nhập dữ liệu nó vẫn không giữ trường hợp tên bảng. – user103219

+0

Có thể biến này cần phải bằng 0 thay vì 2, như Atonewell gợi ý, tuy nhiên hướng dẫn tham khảo cho biết: "* Bạn nên * không * đặt biến này thành 0 nếu bạn đang chạy MySQL trên một hệ thống có trường hợp- tên tệp không nhạy cảm (chẳng hạn như Windows hoặc Mac OS X). Nếu bạn buộc biến này thành 0 bằng --lower-case-table-names = 0 trên hệ thống tệp phân biệt chữ hoa chữ thường và truy cập vào thẻ tab MyISAM bằng cách sử dụng các chữ cái khác nhau, tham số chỉ mục có thể kết quả.* " – JYelton

2

Nó có lẽ là đáng đọc trang sau từ MySQL Reference Manual: http://dev.mysql.com/doc/refman/5.5/en/identifier-case-sensitivity.html

Trên cơ sở đó, tôi nghĩ rằng bạn cần phải thiết lập là 0, không phải 2 , sẽ đảm bảo rằng lược đồ được lưu trữ bằng cách sử dụng cùng một trường hợp như được định nghĩa trong DDL của bạn.

lower_case_table_names=0 
Các vấn đề liên quan