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.sql

1 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ì?

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.sql

2 bằng cách thêm các dòng sau:

[mysql] 
lower_case_table_names = 1

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.
In the past all mysql servers had this setting working fine I just don`t know how to do the same in 8.0.

Hướng dẫn how to set lower_case_table_names=1 in mysql - cách đặt Lower_case_table_names=1 trong mysql

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.sql

1 đượ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.sql

1
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.sql

1 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.sql

1 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.sql

1 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ủ:

Bị cấm khởi động máy chủ bằng 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.sql

1 khác với cài đặt được sử dụng khi máy chủ được khởi tạo. Việc hạn chế là cần thiết bởi vì các đối chiếu được sử dụng bởi các trường bảng từ điển dữ liệu khác nhau dựa trên cài đặt được xác định khi máy chủ được khởi tạo và khởi động lại máy chủ với một cài đặt khác sẽ đưa ra sự không nhất quán liên quan đến cách định danh được đặt hàng và so sánh.

Hướng dẫn how to set lower_case_table_names=1 in mysql - cách đặt Lower_case_table_names=1 trong mysql

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

Hướng dẫn how to set lower_case_table_names=1 in mysql - cách đặt Lower_case_table_names=1 trong mysql

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.sql

1 đượ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.

Giá trịNghĩa
$ mkdir -p /var/tmp/mysql
$ mysqldump -uroot -p kankeri > /var/tmp/dump-kankeri.sql
$ mysqldump -uroot -p xxx     > /var/tmp/dump-xxx.sql

9
Tê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 & nbsp; ____ 20 & nbsp; hoặc & nbsp; ________ 21 & nbsp; câu lệnh. So sánh tên là trường hợp nhạy cảm. Bạn nên & nbsp; không & nbsp; đặt biến này thành 0 nếu bạn đang chạy mysql trên một hệ thống có tên tệp không phân biệt chữ hoa chữ thường (như Windows hoặc OS X). Nếu bạn buộc biến này thành 0 với & nbsp; ________ 22 & nbsp; trên một hệ thống tệp không nhạy cảm trường hợp và truy cập & nbsp; ____ 23 & nbsp; TableName sử dụng các bản tin khác nhau, tham nhũng chỉ số có thể dẫn đến.
$ 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

4
Tên bảng được lưu trữ bằng chữ thường trên đĩa và so sánh tên không nhạy cảm với trường hợp. MySQL chuyển đổi tất cả các tên bảng thành chữ thường khi lưu trữ và tra cứu. Hành vi này cũng áp dụng cho tên cơ sở dữ liệu và bí danh bảng.
$ 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

5
Tê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 & nbsp; ____ ____ 20 & nbsp; hoặc & nbsp; ____ ____ 21 & nbsp; câu lệnh, nhưng MySQL chuyển 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 hoạt động & nbsp; chỉ & nbsp; trên các hệ thống tệp không nhạy cảm với trường hợp!

Để thay đổi giá trị của ‘lower_case_table_names, hãy làm theo các bước bên dưới.

  1. Truy cập tệp My.conf
  2. Tra cứu: # Máy chủ MySQL [MySQLD]
  3. Thêm cái này ngay bên dưới nó: lower_case_table_names = 2
  4. Lưu tệp và khởi động lại dịch vụ MySQL

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ật

Nhẹ 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
lower_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ốc

Thê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
character-set-server=utf8
lower_case_table_names=1
skip-grant-tables

$ vi /etc/my.cnf.d/client.cnf

[Client] Default-Character-SET = UTF8
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
character-set-server=utf8
lower_case_table_names=1
#skip-grant-tables #Comment out

$ Systemctl khởi động lại mysqld $ mysql -Uroot -p mysql nhập mật khẩu: ***
$ mysql -uroot -p mysql Enter password: ***

(5) Đặt cấp bằng cách tạo cơ sở dữ liệu và tạo người dùng

Tạ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.sql

0

đó 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ảng

Tê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!