Hướng dẫn how to set lower_case_table_names=1 in mysql - cách đặt Lower_case_table_names=1 trong mysql
Tôi đã cố gắng thiết lập $ mkdir -p /var/tmp/mysql $ mysqldump -uroot -p kankeri > /var/tmp/dump-kankeri.sql $ mysqldump -uroot -p xxx > /var/tmp/dump-xxx.sql1 cho các lứa tuổi trong MySQL 8.0 mà không thành công. Quy trình để thiết lập điều này trong 8.0 là gì? Show
Trong các phiên bản trước của MySQL, tôi đã có thể ghi đè biến trong $ mkdir -p /var/tmp/mysql $ mysqldump -uroot -p kankeri > /var/tmp/dump-kankeri.sql $ mysqldump -uroot -p xxx > /var/tmp/dump-xxx.sql2 bằng cách thêm các dòng sau:
Nhưng khi tôi cố gắng khởi động lại máy chủ / dịch vụ MySQL không khởi động lại. Trong quá khứ, tất cả các máy chủ MySQL đã có cài đặt này hoạt động tốt, tôi chỉ không biết làm thế nào để làm điều tương tự trong 8.0.
Paul White ♦♦ 75,7K26 Huy hiệu vàng384 Huy hiệu bạc602 Huy hiệu đồng26 gold badges384 silver badges602 bronze badges Đã hỏi ngày 9 tháng 6 năm 2018 lúc 19:15Jun 9, 2018 at 19:15
0 Biến máy chủ $ mkdir -p /var/tmp/mysql $ mysqldump -uroot -p kankeri > /var/tmp/dump-kankeri.sql $ mysqldump -uroot -p xxx > /var/tmp/dump-xxx.sql1 được mô tả trong trang tài liệu có liên quan: $ mkdir -p /var/tmp/mysql $ mysqldump -uroot -p kankeri > /var/tmp/dump-kankeri.sql $ mysqldump -uroot -p xxx > /var/tmp/dump-xxx.sql1 is described in the relevant documentation page: Độ nhạy của trường hợp định danh, nơi nó cũng đề cập:, where it also mentions: $ mkdir -p /var/tmp/mysql $ mysqldump -uroot -p kankeri > /var/tmp/dump-kankeri.sql $ mysqldump -uroot -p xxx > /var/tmp/dump-xxx.sql1 chỉ có thể được cấu hình khi khởi tạo máy chủ. Thay đổi cài đặt$ mkdir -p /var/tmp/mysql $ mysqldump -uroot -p kankeri > /var/tmp/dump-kankeri.sql $ mysqldump -uroot -p xxx > /var/tmp/dump-xxx.sql1 sau khi máy chủ được khởi tạo bị cấm.Changing the$ mkdir -p /var/tmp/mysql $ mysqldump -uroot -p kankeri > /var/tmp/dump-kankeri.sql $ mysqldump -uroot -p xxx > /var/tmp/dump-xxx.sql1 setting after the server is initialized is prohibited. Một số chi tiết xuất hiện trong trang được liên kết về các biến máy chủ:
Paul White ♦♦ 75,7K26 Huy hiệu vàng384 Huy hiệu bạc602 Huy hiệu đồng26 gold badges384 silver badges602 bronze badges Đã hỏi ngày 9 tháng 6 năm 2018 lúc 19:15Jun 9, 2018 at 20:16
Biến máy chủ $ mkdir -p /var/tmp/mysql $ mysqldump -uroot -p kankeri > /var/tmp/dump-kankeri.sql $ mysqldump -uroot -p xxx > /var/tmp/dump-xxx.sql1 được mô tả trong trang tài liệu có liên quan:ypercubeᵀᴹ Độ nhạy của trường hợp định danh, nơi nó cũng đề cập:13 gold badges198 silver badges295 bronze badges 1 Mariadb & nbsp; và & nbsp; mysql & nbsp; tên bảng nhạy cảm nếu chạy trên các hệ thống nhạy cảm trường hợp như & nbsp; linux & nbsp; và & nbsp; unix. & Nbsp; Nó đang gây ra & nbsp; mysql & nbsp; và & nbsp; mariadb & nbsp; tên bảng trong & nbsp; windows & nbsp; để không nhạy cảm trường hợp. Điều đó có nghĩa là một bảng chữ thường có tên & nbsp; TableName & nbsp; giống như chữ hoa & nbsp; TableName & nbsp; hoặc & nbsp; TableName và sử dụng bất kỳ tên nào trong số này sẽ không tạo ra bất kỳ sự khác biệt nào trong truy vấn của bạn. Đó là bởi vì & nbsp; mysql & nbsp; và & nbsp; mariadb & nbsp; các bảng cơ sở dữ liệu lưu trữ và truy vấn dựa trên tên tệp và thư mục fileSystem. Bạn có thể sử dụng tên bảng không nhạy cảm với trường hợp cho & nbsp; mysql & nbsp; và & nbsp; mariadb & nbsp; in & nbsp; linux & nbsp; và khác & nbsp; unix & nbsp; Trong MySQL, cơ sở dữ liệu tương ứng với các thư mục trong thư mục dữ liệu. Mỗi bảng trong cơ sở dữ liệu tương ứng với ít nhất một tệp trong thư mục cơ sở dữ liệu (và có thể nhiều hơn, tùy thuộc vào công cụ lưu trữ). Do đó, độ nhạy trường hợp của hệ điều hành cơ bản đóng một phần trong độ nhạy trường hợp của cơ sở dữ liệu, bảng và tên kích hoạt. Những cái tên như vậy không nhạy cảm với trường hợp trong Windows, nhưng là trường hợp nhạy cảm trong hầu hết các giống UNIX. & Nbsp; lower_case_table_names & nbsp; biến hệ thống cũng ảnh hưởng đến cách máy chủ xử lý độ nhạy của trường hợp định danh, như được mô tả sau trong phần này. Để kiểm tra giá trị của biến này trong bạn đã cài đặt MySQL, hãy chạy bên dưới lệnh mysqladmin -u -p biến Kiểm tra & nbsp; lowd_case_table_names & nbsp; trong danh sách. Tìm thêm chi tiết về & nbsp; biến này & nbsp; ở đây. Nếu Lower_case_table_names là 0, điều đó có nghĩa là bảng, chức năng, tên kích hoạt của bạn là trường hợp nhạy cảm. & Nbsp; ________ 11 & nbsp; có thể lấy các giá trị được hiển thị trong bảng sau. Biến này không & nbsp; không & nbsp; ảnh hưởng đến độ nhạy trường hợp của các định danh kích hoạt. Trên Unix, giá trị mặc định của & nbsp; ________ 11 & nbsp; là 0. Trên Windows, giá trị mặc định là 1. Trên OS X, giá trị mặc định là 2.
Để thay đổi giá trị của ‘lower_case_table_names, hãy làm theo các bước bên dưới.
Bây giờ, lửa bên dưới lệnh. mysqladmin -u -p biến Kiểm tra & nbsp; lowd_case_table_names & nbsp; trong danh sách. Tìm thêm chi tiết về & nbsp; biến này & nbsp; ở đây. -(1) Lấy một kết xuất của DB hiện tại -(2) Xóa lưu trữ dữ liệu trong bí mật -(3) Đặt Lower_Case_Table_Names = 1 và tạo lại DataStore -(4) Đặt mật khẩu gốc -(5) Đặt cấp bằng cách tạo cơ sở dữ liệu và tạo người dùng -(6) Khôi phục từ Dump (1) Lấy một bãi rác của DB hiện cóTạo một bản sao lưu của DB do người dùng xác định hiện tại. Lưu tất cả DB ngoại trừ cơ sở dữ liệu MySQL. Trong ví dụ dưới đây, nó là cơ sở dữ liệu Kankeri và cơ sở dữ liệu XXX. $ mkdir -p /var/tmp/mysql $ mysqldump -uroot -p kankeri > /var/tmp/dump-kankeri.sql $ mysqldump -uroot -p xxx > /var/tmp/dump-xxx.sql (2) Xóa lưu trữ dữ liệu trong bí mậtNhẹ nhàng xóa dữ liệu MySQL (/var/lib/mysql). Nó là an toàn để MV và tiết kiệm. Bạn cũng nên xóa mysqld.log. Dễ dàng kiểm tra lỗi sau này. $ mv /var/lib/mysql /var/tmp/mysql $ rm -f /var/log/mysql/mysqld.log $ touch /var/log/mysql/mysqld.log $ chown mysql.mysql /var/log/mysql/mysqld.log .Đầu tiên, viết & nbsp; ________ 30 & nbsp; trong mysql-server.cnf. Thêm vào CNF ở trạng thái ban đầu. Nếu vẫn còn cài đặt thêm, sẽ rất khó để cô lập khi xảy ra lỗi. $ vi /etc/my.cnf.d/mysql-server.cnf [mysqld] lowdy_case_table_names = 1 Sau đó tái tạo dữ liệu và bắt đầu dịch vụ. Tại thời điểm này, hãy chắc chắn rằng bạn có thể bắt đầu mà không có lỗi. $ mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql --console $ ls -l /var/lib/mysql $ more /var/log/mysql/mysqld.log $ systemctl start mysqld (4) Đặt mật khẩu gốcThêm & nbsp; ________ 32 & nbsp; vào mysql-server.cnf để đặt mật khẩu gốc và khởi động lại dịch vụ. Nếu cần thiết, cũng đặt mã hóa là tốt. Nhập bảng điều khiển MySQL với tài khoản gốc mà không cần xác thực mật khẩu. $ vi /etc/my.cnf.d/mysql-server.cnf [mysqld] set set-server = utf8 low $ vi /etc/my.cnf.d/client.cnf [Client] Default-Character-SET = UTF8 > use mysql > select user,host,plugin,authentication_string from user; +------------------+-----------+-----------------------+-----+ | user | host | plugin | authentication_string | +------------------+-----------+-----------------------+-----+ | mysql.infoschema | localhost | caching_sha2_password | *** | | mysql.session | localhost | caching_sha2_password | *** | | mysql.sys | localhost | caching_sha2_password | *** | | root | localhost | mysql_native_password | *** | +------------------+-----------+-----------------------+-----+ > show variables like 'validate_password%'; +--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | validate_password.length | 8 | | validate_password.mixed_case_count | 1 | | validate_password.number_count | 1 | | validate_password.policy | MEDIUM | | validate_password.special_char_count | 1 | +--------------------------------------+--------+ Tôi làm suy yếu cường độ mật khẩu như sau. Ở trạng thái ban đầu, nó là một hỗn hợp của các chữ cái viết hoa, chữ cái chữ thường, số và ký hiệu. Sau đó, đặt mật khẩu cho tài khoản gốc. Mật khẩu đơn giản không khớp với độ bền của mật khẩu sẽ dẫn đến lỗi Lỗi 1819 (HY000): Mật khẩu của bạn không đáp ứng các yêu cầu chính sách hiện tại. > set global validate_password.length=6; > set global validate_password.policy=LOW; > set global validate_password.special_char_count=0; > flush privileges; > alter user 'root'@'localhost' identified by '***'; #With any password > flush privileges; > exit; Hủy bỏ bảng Bỏ qua, khởi động lại và đảm bảo bạn có thể đăng nhập bằng tài khoản gốc. $ vi /etc/my.cnf.d/mysql-server.cnf [mysqld] set-server ký tự = utf8 low $ Systemctl khởi động lại mysqld $ mysql -Uroot -p mysql nhập mật khẩu: *** (5) Đặt cấp bằng cách tạo cơ sở dữ liệu và tạo người dùngTạo cơ sở dữ liệu và tài khoản do người dùng cần thiết và đặt cấp. Trong ví dụ dưới đây, cơ sở dữ liệu Kankeri và XXX. Đối với cơ sở dữ liệu Kankeri, chúng tôi đã cấp tài khoản Kadmin và Kuser. Sức mạnh mật khẩu giống như root được mô tả ở trên. > use mysql; > create database kankeri; > create database xxx; > CREATE USER kadmin@localhost IDENTIFIED BY '***'; > CREATE USER kuser@localhost IDENTIFIED BY '***'; > GRANT ALL PRIVILEGES ON kankeri.* TO kamin@localhost; > GRANT DELETE,INSERT,SELECT,UPDATE ON kankeri.* TO kuser@localhost; > flush privileges; > select user,host,plugin,authentication_string from user; +------------------+-----------+-----------------------+-----+ | user | host | plugin | authentication_string | +------------------+-----------+-----------------------+-----+ | kadmin | localhost | mysql_native_password | *** | | kuser | localhost | mysql_native_password | *** | | mysql.infoschema | localhost | caching_sha2_password | *** | | mysql.session | localhost | caching_sha2_password | *** | | mysql.sys | localhost | caching_sha2_password | *** | | root | localhost | mysql_native_password | *** | +------------------+-----------+-----------------------+-----+ (6) Khôi phục từ bãi rác.Khôi phục các tệp được sao lưu trong bước đầu tiên (1) và khôi phục dữ liệu. $ mkdir -p /var/tmp/mysql $ mysqldump -uroot -p kankeri > /var/tmp/dump-kankeri.sql $ mysqldump -uroot -p xxx > /var/tmp/dump-xxx.sql0 đó là tất cả Tham khảo: https://linuxtut.com/en/https://linuxtut.com/en/ Lower_case_table_names trong MySQL là gì?Sử dụng Lower_Case_Table_Names = 0 trên Unix và Lower_Case_Table_Names = 2 trên Windows. Điều này bảo tồn thư của cơ sở dữ liệu và tên bảng. Nhược điểm của điều này là bạn phải đảm bảo rằng các câu lệnh của bạn luôn đề cập đến cơ sở dữ liệu và tên bảng của bạn với chữ cái chính xác trên Windows.preserves the lettercase of database and table names. The disadvantage of this is that you must ensure that your statements always refer to your database and table names with the correct lettercase on Windows.
Ý nghĩa của dòng cấu hình MySQL thấp hơn lower_case_table_names 1 là gì?Khởi tạo với Lower_case_table_names = 1 Điều này có nghĩa là, bạn nên cập nhật tệp cấu hình MySQL với giá trị mong muốn của Lower_Case_Table_Names trước khi bắt đầu đầu tiên. Vị trí mặc định cho tệp cấu hình MySQL là /etc/my.cnf.you should update the MySQL configuration file with the desired value of lower_case_table_names before the first start. The default location for the MySQL configuration file is /etc/my.cnf .
Tùy chọn đặt trong MySQL là gì?Đặt được sử dụng để đặt các biến, có thể là các biến toàn cầu, hệ thống, phiên, v.v.use to set variables, which can be global, system, session variables etc.
Là trường hợp tên bảngTên bảng và cơ sở dữ liệu được lưu trữ trên đĩa bằng cách sử dụng Lettercase được chỉ định trong bảng Tạo hoặc tạo câu lệnh cơ sở dữ liệu, nhưng MySQL chuyển đổi chúng thành chữ thường khi tra cứu.So sánh tên không nhạy cảm với trường hợp.Điều này chỉ hoạt động trên các hệ thống tệp không nhạy cảm với trường hợp! |