Hướng dẫn mysql login - đăng nhập mysql

Mặc định khi cài đặt và sử dụng các dịch vụ hoạt động cho hệ cơ sở dữ liệu như MySQL/MariaDB trên linux thì thường mật khẩu root sẽ được đề nghị là mật khẩu phức tạp và có độ khó nhất định. Điều này sẽ gây khó khăn trong việc thao tác với cơ sở dữ liệu do việc login cần phải nhập password cho mỗi thao tác trên dòng lệnh.

Hướng dẫn mysql login - đăng nhập mysql

Bài viết này sẽ hướng dẫn các bạn cách thực hiện login vào MySQL/MariaDB với quyền root cao nhất mà không cần nhập password. (login without root password on terminal)

Đặt mật khẩu cho tài khoản root trên MySQL

Trong trường hợp bạn mới cài đặt MySQL/MariaDB hoặc chưa đặt mật khẩu root. Sử dụng lệnh sau để cài đặt mật khẩu root:

mysqladmin -u root password RootPassword

Thay MatKhauRoot bằng mật khẩu cho tài khoản root mà bạn muốn đặt cho MySQL. Lưu ý mật khẩu này nên có độ phức tạp nhất định.

Trong trường hợp bạn đã cài đặt mật khẩu root nhưng không nhớ, các bạn có thể thực hiện reset root mysql.

Kết nối và sử dụng MySQL với tài khoản root không cần password

Để sử dụng được các câu lệnh #mysql (mysqldump, mysqlcheck, …) với tài khoản root mà không cần nhập password. Hoặc truy cập mysql không cần khai báo mật khẩu như các ví dụ dưới:

[email protected] [~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 14363696
Server version: 10.1.31-MariaDB-cll-lve MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> 

Để thực hiện được như trên bạn chỉ cần tạo một file có tên là .my.cnf.my.cnf

File này sẽ được đặt tại /root/ với nội dung:

#vi /root/.my.cnf
[mysql]
user=root
password=RootPassword

+ user=root: có thể thay thế bằng một user khác thì khi gõ mysql user đó sẽ được gọi ra.

+ password=RootPassword: thay thế bằng mật khẩu tương ứng cho user đã được khai báo bên trên.

Thực hiện phân quyền cho file này là 0600 nhằm phù hợp với mục đích sử dụng.

chmod 0600 /root/.my.cnf

Nếu gặp vấn đề trong quá trình thực hiện, các bạn có thể liên hệ ngay với đội ngũ hỗ trợ 7Host Việt Nam tại [email protected] hoặc website https://7host.vn

Giới thiệu

MYSQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở giúp cho người dùng lưu trữ, tổ chức và sau đó lấy dữ liệu. Nó có nhiều lựa chọn cung cấp cho người dùng để thao tao với bảng và cơ sở dữ liệu. Bài viết này hướng dẫn việc tạo user và cấp quyền trong MYSQL.

Ngay khi bắt đầu sử dụng MySQL database, bạn sẽ được cung cấp username và password. Những thông tin đăng nhập này sẽ cho bạn quyền “root access”. Một user root có toàn quyền truy cập tới database và bảng trong databases. Nhưng qua thời gian hoặc thao tác trên database production chẳng hạn, bạn sẽ cần cấp quyền truy cập tới database tới một user mà không cho phép họ sử dụng toàn quyền.

Tạo 1 user mới như thế nào trong MySQL?

Để tạo user mới, bạn thực hiện các bước như sau:

  1. Truy cập vào mysql
  2. Thực thi câu lệnh để tạo user:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

newuser: tên user

password: mật khẩu của user

Tại thời điểm này, user mới không có quyền làm bất cứ điều gì với cơ sở dữ liệu. Trên thực tế, ngay cả khi user mới cố gắng đăng nhập,họ sẽ không thể truy cập vào MySQL shell.

Do vậy, điều đầu tiên cần làm là cung cấp cho user quyền truy cập vào các thông tin họ cần

  1. Gán quyền cho user
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

Dấu * ở trên tương ứng với cơ sở dữ liệu và bảng mà user có thể truy cập - cụ thể là lệnh này cho phép người dùng thêm, sửa, xóa thực thi các công việc trên tất cả các bảng trong cơ sở dữ liệu

  1. Để thay đổi được thực hiện ngay lập tức, hãy dùng lệnh sau:
FLUSH PRIVILEGES;

Như vậy, với các bước ở trên, user mới tạo của bạn có toàn quyền như là user root

Một số quyền bạn có thể gán cho user trong MySQL

Dưới đây là danh sách các lệnh thường dùng để gán quyền cho user:

  • ALL PRIVILEGES – Cho phép MySQL user thực hiện toàn quyền trên databases (hoặc 1 vài db được thiết lập)
  • CREATE – Cho phép user tạo mới tables hoặc databases
  • DROP – Cho phép xóa tables hoặc databases
  • DELETE – Cho phép xóa bản ghi dữ liệu trong bảng tables
  • INSERT – Cho phép thêm bản ghi mới vào bảng csdl
  • SELECT – Cho phép sử dụng lệnh Select để tìm kiếm dữ liệu
  • UPDATE – Cho phép cập nhật csdl
  • GRANT OPTION – Cho phép gán hoặc xóa quyền của người dùng khác.

MySQL cho phép gán quyền cho user với một dòng lệnh đơn giản:

GRANT type_of_permission ON database_name.table_name TO 'username'@'localhost';

Nếu bạn muốn cho phép user truy cập tất cả databases hoặc tất cả bảng, hãy dùng dấu * thay cho tên database hoặc table.

Mỗi lần bạn cập nhật hay thay đổi quyền hãy dùng lệnh Flush Privileges đảm bảo các thay đổi có hiệu lực.

FLUSH PRIVILEGES;

Để áp dụng nhiều loại quyền, ngăn cách chúng bằng dấu phẩy. Ví dụ, bạn có thể gán quyền CREATE và SELECT cho một user:

GRANT CREATE, SELECT ON database_name.table_name TO 'username'@'localhost';

Nếu cần thu hồi lại quyền của user, hãy dùng lệnh REVOKE:

[email protected] [~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 14363696
Server version: 10.1.31-MariaDB-cll-lve MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> 
0

Ví dụ, để thu hồi toàn bộ các quyền cho một user:

[email protected] [~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 14363696
Server version: 10.1.31-MariaDB-cll-lve MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> 
1

Hoặc bạn cũng có thể xóa user:

[email protected] [~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 14363696
Server version: 10.1.31-MariaDB-cll-lve MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> 
2

Bạn có thể kiểm tra user mới tạo đã thành công và có thể đăng nhập được hay chưa, đầu tiên thực hiện logout bằng cách:

[email protected] [~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 14363696
Server version: 10.1.31-MariaDB-cll-lve MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> 
3

và login bằng lệnh

[email protected] [~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 14363696
Server version: 10.1.31-MariaDB-cll-lve MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> 
4

NOTE: Hãy nhớ, để thực thi những quyền này bạn cần có quyền root. Cũng như vậy, hãy chắc đã thực thi FLUSH PRIVILEGES sau khi tạo bất kỳ thay đổi nào về quyền. Hãy nhớ, để thực thi những quyền này bạn cần có quyền root. Cũng như vậy, hãy chắc đã thực thi FLUSH PRIVILEGES sau khi tạo bất kỳ thay đổi nào về quyền.

Hiển thị quyền của một user trong MySQL như thế nào?

Để biết quyền gì bạn có để gán cho một MySQL, bạn có thể sử dụng lệnh SHOW GRANTS:

[email protected] [~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 14363696
Server version: 10.1.31-MariaDB-cll-lve MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> 
5

Tham khảo

https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql