Hướng dẫn password function mysql - mật khẩu chức năng mysql

6.2.10 & nbsp; gán mật khẩu tài khoản

Thông tin cần thiết cho các máy khách kết nối với máy chủ MySQL có thể bao gồm mật khẩu. Phần này mô tả cách gán mật khẩu cho tài khoản MySQL.

MySQL lưu trữ thông tin đăng nhập trong bảng

ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
3 trong cơ sở dữ liệu hệ thống
ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
4. Các hoạt động gán hoặc sửa đổi mật khẩu chỉ được phép cho người dùng với đặc quyền
ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
5, hoặc, thay vào đó, các đặc quyền cho cơ sở dữ liệu
ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
4 [đặc quyền
ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
7 để tạo tài khoản mới, đặc quyền
ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
8 để sửa đổi các tài khoản hiện có]. Nếu biến hệ thống
ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
9 được bật, hãy sử dụng các câu lệnh sửa đổi tài khoản như
ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
5 hoặc
ALTER USER USER[] IDENTIFIED BY 'password';
1 Ngoài ra yêu cầu đặc quyền
ALTER USER USER[] IDENTIFIED BY 'password';
2.

Các cuộc thảo luận ở đây chỉ tóm tắt cú pháp cho các câu lệnh phân bổ mật khẩu phổ biến nhất. Để biết chi tiết đầy đủ về các khả năng khác, hãy xem Phần & NBSP; 13.7.1.2, Tạo Tuyên bố người dùng, Phần & NBSP; 13.7.1.1, Tuyên bố người dùng thay đổi, Phần & NBSP; Set Set Mật khẩu Tuyên bố.

MySQL sử dụng các plugin để thực hiện xác thực máy khách; Xem Phần & NBSP; 6.2.13, Xác thực có thể cắm được. Trong các câu lệnh gán mật khẩu, plugin xác thực được liên kết với tài khoản thực hiện bất kỳ băm nào cần thiết của mật khẩu Cleartext được chỉ định. Điều này cho phép MYSQL phản đối mật khẩu trước khi lưu trữ chúng trong bảng hệ thống

ALTER USER USER[] IDENTIFIED BY 'password';
3. Đối với các câu lệnh được mô tả ở đây, MySQL tự động băm mật khẩu được chỉ định. Ngoài ra còn có cú pháp cho
ALTER USER USER[] IDENTIFIED BY 'password';
4 và
ALTER USER USER[] IDENTIFIED BY 'password';
1 cho phép các giá trị băm được chỉ định theo nghĩa đen. Để biết chi tiết, xem các mô tả của những tuyên bố đó.

Để gán mật khẩu khi bạn tạo tài khoản mới, hãy sử dụng

ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
5 và bao gồm mệnh đề
ALTER USER USER[] IDENTIFIED BY 'password';
7:

CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';

ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
5 cũng hỗ trợ cú pháp để chỉ định plugin xác thực tài khoản. Xem Phần & NBSP; 13.7.1.2, Tạo câu lệnh của người dùng.

Để gán hoặc thay đổi mật khẩu cho tài khoản hiện có, hãy sử dụng câu lệnh

ALTER USER USER[] IDENTIFIED BY 'password';
1 với mệnh đề
ALTER USER USER[] IDENTIFIED BY 'password';
7:

ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';

Nếu bạn không được kết nối với tư cách là người dùng ẩn danh, bạn có thể thay đổi mật khẩu của riêng mình mà không cần đặt tên cho tài khoản của mình theo nghĩa đen:

ALTER USER USER[] IDENTIFIED BY 'password';

Để thay đổi mật khẩu tài khoản từ dòng lệnh, hãy sử dụng lệnh mysqladmin:mysqladmin command:

mysqladmin -u user_name -h host_name password "password"

Tài khoản mà lệnh này đặt mật khẩu là một tài khoản có một hàng trong bảng hệ thống

ALTER USER USER[] IDENTIFIED BY 'password';
3 khớp với
mysqladmin -u user_name -h host_name password "password"
2 trong cột
mysqladmin -u user_name -h host_name password "password"
3 và máy chủ máy khách mà bạn kết nối trong cột
mysqladmin -u user_name -h host_name password "password"
4.from which you connect in the
mysqladmin -u user_name -h host_name password "password"
4 column.

Cảnh báo

Đặt mật khẩu bằng mysqladmin nên được coi là không an toàn. Trên một số hệ thống, mật khẩu của bạn có thể nhìn thấy được các chương trình trạng thái hệ thống như PS có thể được người dùng khác gọi để hiển thị các dòng lệnh. Các máy khách MySQL thường ghi đè lên đối số mật khẩu dòng lệnh với số 0 trong chuỗi khởi tạo của họ. Tuy nhiên, vẫn còn một khoảng thời gian ngắn trong đó giá trị có thể nhìn thấy. Ngoài ra, trên một số hệ thống chiến lược ghi đè này không hiệu quả và mật khẩu vẫn hiển thị cho PS. [Hệ thống UNIX Systemv và có lẽ các hệ thống khác phải chịu sự cố này.]mysqladmin should be considered insecure. On some systems, your password becomes visible to system status programs such as ps that may be invoked by other users to display command lines. MySQL clients typically overwrite the command-line password argument with zeros during their initialization sequence. However, there is still a brief interval during which the value is visible. Also, on some systems this overwriting strategy is ineffective and the password remains visible to ps. [SystemV Unix systems and perhaps others are subject to this problem.]

Nếu bạn đang sử dụng sao chép MySQL, hãy lưu ý rằng, hiện tại, mật khẩu được sử dụng bởi một bản sao như một phần của câu lệnh

mysqladmin -u user_name -h host_name password "password"
5 bị giới hạn một cách hiệu quả ở độ dài 32 ký tự; Nếu mật khẩu dài hơn, bất kỳ ký tự thừa nào cũng bị cắt. Điều này không phải là do bất kỳ giới hạn nào được áp đặt bởi máy chủ MySQL nói chung, mà là một vấn đề cụ thể đối với sao chép MySQL. [Để biết thêm thông tin, xem Bug #43439.]

B.3.3.2 & nbsp; Cách đặt lại mật khẩu gốc

Nếu bạn chưa bao giờ gán mật khẩu

mysqladmin -u user_name -h host_name password "password"
6 cho MySQL, máy chủ hoàn toàn không yêu cầu mật khẩu để kết nối là
mysqladmin -u user_name -h host_name password "password"
6. Tuy nhiên, điều này là không an toàn. Để biết hướng dẫn về việc gán mật khẩu, xem Phần & NBSP; 2.10.4, Bảo mật tài khoản MySQL ban đầu.

Nếu bạn biết mật khẩu

mysqladmin -u user_name -h host_name password "password"
6 và muốn thay đổi nó, hãy xem Phần & NBSP; 13.7.1.1, Tuyên bố người dùng thay đổi, và Phần & NBSP;

Nếu bạn đã chỉ định mật khẩu

mysqladmin -u user_name -h host_name password "password"
6 trước đây nhưng đã quên nó, bạn có thể gán một mật khẩu mới. Các phần sau đây cung cấp các hướng dẫn cho các hệ thống Windows và UNIX và UNIX, cũng như các hướng dẫn chung áp dụng cho bất kỳ hệ thống nào.

B.3.3.2.1 & nbsp; Đặt lại mật khẩu gốc: Hệ thống Windows

Trên Windows, sử dụng quy trình sau để đặt lại mật khẩu cho tài khoản MySQL

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
0. Để thay đổi mật khẩu cho tài khoản
mysqladmin -u user_name -h host_name password "password"
6 bằng phần tên máy chủ khác, hãy sửa đổi các hướng dẫn để sử dụng tên máy chủ đó.

  1. Đăng nhập vào hệ thống của bạn với tư cách là quản trị viên.

  2. Dừng máy chủ MySQL nếu nó đang chạy. Đối với một máy chủ đang chạy như một dịch vụ Windows, hãy truy cập Trình quản lý dịch vụ: Từ menu, chọn, sau đó,. Tìm dịch vụ MySQL trong danh sách và dừng nó.

    Nếu máy chủ của bạn không chạy như một dịch vụ, bạn có thể cần sử dụng trình quản lý tác vụ để buộc nó dừng lại.

  3. Tạo một tệp văn bản chứa câu lệnh Ghi nhận mật khẩu trên một dòng. Thay thế mật khẩu bằng mật khẩu mà bạn muốn sử dụng.

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
  4. Lưu các tập tin. Ví dụ này giả định rằng bạn đặt tên cho tệp

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    2.

  5. Mở cửa sổ Bảng điều khiển để đến dấu nhắc lệnh: Từ menu, chọn, sau đó nhập CMD làm lệnh sẽ được chạy.cmd as the command to be run.

  6. Bắt đầu máy chủ MySQL với biến hệ thống

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    3 được đặt để đặt tên cho tệp [lưu ý rằng dấu gạch chéo ngược trong giá trị tùy chọn được nhân đôi]:

    C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
    C:\> mysqld --init-file=C:\\mysql-init.txt

    Nếu bạn đã cài đặt MySQL đến một vị trí khác, hãy điều chỉnh lệnh CD cho phù hợp.cd command accordingly.

    Máy chủ thực thi nội dung của tệp được đặt tên bởi biến hệ thống

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    3 khi khởi động, thay đổi mật khẩu tài khoản
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    0.

    Để có đầu ra máy chủ xuất hiện trong cửa sổ Bảng điều khiển thay vì trong tệp nhật ký, hãy thêm tùy chọn

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    6 vào lệnh MySQLD.mysqld command.

    Nếu bạn đã cài đặt MySQL bằng Trình hướng dẫn cài đặt MySQL, bạn có thể cần chỉ định tùy chọn

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    7. Ví dụ:

    C:\> mysqld
             --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini"
             --init-file=C:\\mysql-init.txt

    Cài đặt

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    7 thích hợp có thể được tìm thấy bằng cách sử dụng Trình quản lý dịch vụ: từ menu, sau đó, chọn. Tìm dịch vụ MySQL trong danh sách, nhấp chuột phải và chọn tùy chọn
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    9. Trường
    C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
    C:\> mysqld --init-file=C:\\mysql-init.txt
    0 chứa cài đặt
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    7.

  7. Sau khi máy chủ bắt đầu thành công, xóa

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    2.

Bây giờ bạn sẽ có thể kết nối với máy chủ MySQL dưới dạng

mysqladmin -u user_name -h host_name password "password"
6 bằng cách sử dụng mật khẩu mới. Dừng máy chủ MySQL và khởi động lại bình thường. Nếu bạn chạy máy chủ dưới dạng dịch vụ, hãy khởi động từ cửa sổ Windows Services. Nếu bạn khởi động máy chủ theo cách thủ công, hãy sử dụng bất kỳ lệnh nào bạn thường sử dụng.

B.3.3.2.2 & nbsp; Đặt lại mật khẩu gốc: Hệ thống UNIX và UNIX giống như

Trên Unix, sử dụng quy trình sau để đặt lại mật khẩu cho tài khoản MySQL

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
0. Để thay đổi mật khẩu cho tài khoản
mysqladmin -u user_name -h host_name password "password"
6 bằng phần tên máy chủ khác, hãy sửa đổi các hướng dẫn để sử dụng tên máy chủ đó.

Các hướng dẫn giả định rằng bạn khởi động máy chủ MySQL từ tài khoản đăng nhập UNIX mà bạn thường sử dụng để chạy nó. Ví dụ: nếu bạn chạy máy chủ bằng tài khoản đăng nhập

ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
4, bạn nên đăng nhập dưới dạng
ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
4 trước khi sử dụng các hướng dẫn. Ngoài ra, bạn có thể đăng nhập dưới dạng
mysqladmin -u user_name -h host_name password "password"
6, nhưng trong trường hợp này, bạn phải bắt đầu MySQLD với tùy chọn
C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
C:\> mysqld --init-file=C:\\mysql-init.txt
9. Nếu bạn khởi động máy chủ dưới dạng
mysqladmin -u user_name -h host_name password "password"
6 mà không cần sử dụng
C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
C:\> mysqld --init-file=C:\\mysql-init.txt
9, máy chủ có thể tạo các tệp thuộc sở hữu ____ 36 trong thư mục dữ liệu, chẳng hạn như tệp nhật ký và chúng có thể gây ra sự cố liên quan đến quyền cho các khởi động máy chủ trong tương lai. Nếu điều đó xảy ra, bạn phải thay đổi quyền sở hữu của các tệp thành
ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
4 hoặc xóa chúng.must start mysqld with the
C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
C:\> mysqld --init-file=C:\\mysql-init.txt
9 option. If you start the server as
mysqladmin -u user_name -h host_name password "password"
6 without using
C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
C:\> mysqld --init-file=C:\\mysql-init.txt
9, the server may create
mysqladmin -u user_name -h host_name password "password"
6-owned files in the data directory, such as log files, and these may cause permission-related problems for future server startups. If that happens, you must either change the ownership of the files to
ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
4 or remove them.

  1. Đăng nhập vào hệ thống của bạn với tư cách là người dùng Unix mà máy chủ MySQL chạy như [ví dụ:

    ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
    4].

  2. Dừng máy chủ MySQL nếu nó đang chạy. Xác định vị trí tệp

    C:\> mysqld
             --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini"
             --init-file=C:\\mysql-init.txt
    5 chứa ID quy trình của máy chủ. Vị trí chính xác và tên của tệp này phụ thuộc vào phân phối, tên máy chủ và cấu hình của bạn. Các vị trí phổ biến là
    C:\> mysqld
             --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini"
             --init-file=C:\\mysql-init.txt
    6,
    C:\> mysqld
             --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini"
             --init-file=C:\\mysql-init.txt
    7 và
    C:\> mysqld
             --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini"
             --init-file=C:\\mysql-init.txt
    8. Nói chung, tên tệp có phần mở rộng
    C:\> mysqld
             --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini"
             --init-file=C:\\mysql-init.txt
    5 và bắt đầu bằng
    $> kill `cat /mysql-data-directory/host_name.pid`
    0 hoặc tên máy chủ của hệ thống của bạn.

    Dừng máy chủ MySQL bằng cách gửi một

    $> kill `cat /mysql-data-directory/host_name.pid`
    1 bình thường [không phải
    $> kill `cat /mysql-data-directory/host_name.pid`
    2] đến quy trình MySQLD. Sử dụng tên đường dẫn thực tế của tệp
    C:\> mysqld
             --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini"
             --init-file=C:\\mysql-init.txt
    5 trong lệnh sau:mysqld process. Use the actual path name of the
    C:\> mysqld
             --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini"
             --init-file=C:\\mysql-init.txt
    5 file in the following command:

    $> kill `cat /mysql-data-directory/host_name.pid`

    Sử dụng Backticks [không phải dấu ngoặc kép] với lệnh

    $> kill `cat /mysql-data-directory/host_name.pid`
    4. Những điều này khiến đầu ra của
    $> kill `cat /mysql-data-directory/host_name.pid`
    4 được thay thế vào lệnh
    $> kill `cat /mysql-data-directory/host_name.pid`
    1.

  3. Tạo một tệp văn bản chứa câu lệnh Ghi nhận mật khẩu trên một dòng. Thay thế mật khẩu bằng mật khẩu mà bạn muốn sử dụng.

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
  4. Lưu các tập tin. Ví dụ này giả định rằng bạn đặt tên cho tệp

    $> kill `cat /mysql-data-directory/host_name.pid`
    7. Tệp chứa mật khẩu, vì vậy không lưu nó ở nơi có thể đọc bởi những người dùng khác. Nếu bạn không đăng nhập dưới dạng
    ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
    4 [người dùng mà máy chủ chạy như], hãy đảm bảo rằng tệp có quyền cho phép
    ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
    4 đọc nó.

  5. Bắt đầu máy chủ MySQL với biến hệ thống

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    3 được đặt để đặt tên cho tệp:

    $> mysqld --init-file=/home/me/mysql-init &

    Máy chủ thực thi nội dung của tệp được đặt tên bởi biến hệ thống

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    3 khi khởi động, thay đổi mật khẩu tài khoản
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    0.

    Các tùy chọn khác cũng có thể cần thiết, tùy thuộc vào cách bạn thường khởi động máy chủ của mình. Ví dụ:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    7 có thể cần thiết trước đối số
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    3.

  6. Sau khi máy chủ bắt đầu thành công, xóa

    $> kill `cat /mysql-data-directory/host_name.pid`
    7.

Bây giờ bạn sẽ có thể kết nối với máy chủ MySQL dưới dạng

mysqladmin -u user_name -h host_name password "password"
6 bằng cách sử dụng mật khẩu mới. Dừng máy chủ và khởi động lại bình thường.

B.3.3.2.3 & nbsp; Đặt lại mật khẩu gốc: Hướng dẫn chung

Các phần trước cung cấp các hướng dẫn khởi động mật khẩu dành riêng cho các hệ thống Windows và UNIX và UNIX. Ngoài ra, trên bất kỳ nền tảng nào, bạn có thể đặt lại mật khẩu bằng máy khách MySQL [nhưng cách tiếp cận này kém an toàn]:mysql client [but this approach is less secure]:

  1. Dừng máy chủ MySQL nếu cần thiết, sau đó khởi động lại với tùy chọn

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    7. Điều này cho phép bất kỳ ai kết nối mà không cần mật khẩu và với tất cả các đặc quyền và vô hiệu hóa các câu lệnh quản lý tài khoản như
    ALTER USER USER[] IDENTIFIED BY 'password';
    1 và
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    9. Bởi vì điều này là không an toàn, nếu máy chủ được bắt đầu với tùy chọn
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    7, nó cũng vô hiệu hóa các kết nối từ xa bằng cách bật
    $> mysqld --init-file=/home/me/mysql-init &
    1.

  2. Kết nối với máy chủ MySQL bằng máy khách MySQL; Không cần mật khẩu vì máy chủ đã được bắt đầu với

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    7:mysql client; no password is necessary because the server was started with
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    7:

    ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
    0
  3. Trong máy khách

    ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
    4, hãy nói với máy chủ tải lại các bảng cấp để các báo cáo quản lý tài khoản hoạt động:

    ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
    1

    Sau đó thay đổi mật khẩu tài khoản

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    0.Thay thế mật khẩu bằng mật khẩu mà bạn muốn sử dụng.Để thay đổi mật khẩu cho tài khoản
    mysqladmin -u user_name -h host_name password "password"
    6 bằng phần tên máy chủ khác, hãy sửa đổi các hướng dẫn để sử dụng tên máy chủ đó.

    ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
    2

Bây giờ bạn sẽ có thể kết nối với máy chủ MySQL dưới dạng

mysqladmin -u user_name -h host_name password "password"
6 bằng cách sử dụng mật khẩu mới.Dừng máy chủ và khởi động lại bình thường [không có tùy chọn
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
7 và không bật biến hệ thống
$> mysqld --init-file=/home/me/mysql-init &
1].

Bài Viết Liên Quan

Chủ Đề