Hướng dẫn login mysql command ubuntu - đăng nhập lệnh mysql ubuntu

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 login mysql command ubuntu - đăng nhập lệnh mysql ubuntu

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

Thông thường thì nếu bạn muốn đăng nhập vào giao diện command-line (console) của dịch vụ MySQL bạn sẽ nhập trực tiếp thông tin user/pass trên command-line ssh terminal chẳng hạn :MySQL bạn sẽ nhập trực tiếp thông tin user/pass trên command-line ssh terminal chẳng hạn :

# mysql -uroot -p
Enter password: 

  Còn bây giờ bạn sẽ nghĩ đến 2 kịch bản sau để không cần/muốn đăng nhập thông tin mật khẩu trên terminal : + Bạn không muốn phải gõ mật khẩu để đăng nhập MySQL command-line. Vì bạn quá lười ? vì bạn không muốn ai nhìn thấy mình gõ mật khẩu ? Bạn tự tin là hệ thống khó ai truy cập vào để biết mật khẩu database chứa ở file. + Nếu bạn muốn thực thi 1 script chạy ở môi trường non-interactive, tức là môi trường thực thi chương trình lệnh bạn không thể nhập input từ keyboard vào được ấy, thì hẳn phải có 1 cách nào đó để load thông tin user/pass tương ứng cho các chương trình script đó sử dụng đăng nhập thực hiện lệnh MySQL.
Còn bây giờ bạn sẽ nghĩ đến 2 kịch bản sau để không cần/muốn đăng nhập thông tin mật khẩu trên terminal :
+ Bạn không muốn phải gõ mật khẩu để đăng nhập MySQL command-line. Vì bạn quá lười ? vì bạn không muốn ai nhìn thấy mình gõ mật khẩu ? Bạn tự tin là hệ thống khó ai truy cập vào để biết mật khẩu database chứa ở file.
+ Nếu bạn muốn thực thi 1 script chạy ở môi trường non-interactive, tức là môi trường thực thi chương trình lệnh bạn không thể nhập input từ keyboard vào được ấy, thì hẳn phải có 1 cách nào đó để load thông tin user/pass tương ứng cho các chương trình script đó sử dụng đăng nhập thực hiện lệnh MySQL.

Vậy để giải quyết 2 kịch bản trên, bạn sẽ lưu trữ thông tin user/pass đăng nhập MySQL xuống 1 file text. Ví dụ, trên hệ thống unix bạn sẽ chứa thông tin đó ở file “.my.cnf” tại thư mục $HOME của user tương ứng. Các chương trình của dịch vụ MySQL như mysql, mysqldump, mysqlcheck,… khi tiến hành đăng nhập sẽ tìm kiếm file “.my.cnf” ở thư mục $HOME của user đang thực thi chương trình để tìm kiếm thông tin đăng nhập. Nếu không có sẽ xét đến các input thông tin trên terminal. Nội dung file đó như sau :Ví dụ, trên hệ thống unix bạn sẽ chứa thông tin đó ở file “.my.cnf” tại thư mục $HOME của user tương ứng. Các chương trình của dịch vụ MySQL như mysql, mysqldump, mysqlcheck,… khi tiến hành đăng nhập sẽ tìm kiếm file “.my.cnf” ở thư mục $HOME của user đang thực thi chương trình để tìm kiếm thông tin đăng nhập. Nếu không có sẽ xét đến các input thông tin trên terminal. Nội dung file đó như sau :

# vi ~/.my.cnf
[client]
user=root
password=matkhaucuaban

  Sau đó ta sẽ phân quyền để bảo mật file này chỉ được phép truy xuất bởi user đó hoặc root. Ta set mode 400 hoặc 600 nhé.
Sau đó ta sẽ phân quyền để bảo mật file này chỉ được phép truy xuất bởi user đó hoặc root. Ta set mode 400 hoặc 600 nhé.

# chmod 600 ~/.my.cnf

  Như vậy là xong rồi, bây giờ bạn có thể đăng nhập MySQL mà không cần phải nhập thông tin user/pass từ bàn phím. Hãy thử xem nào.
Như vậy là xong rồi, bây giờ bạn có thể đăng nhập MySQL mà không cần phải nhập thông tin user/pass từ bàn phím. Hãy thử xem nào.

# mysql

Lưu ý : – Nếu bạn để thông tin file ở đường dẫn khác mặc định “~/.my.cnf” và bạn muốn chương trình mysql được chỉ định load thông tin file ở đường dẫn đó thì hãy dùng option “–defaults-extra-file=” . Option này sẽ chỉ cho MySQL biết đường dẫn cụ thể và chính xác để load thông tin user/pass nếu có trong file đó để sử dụng. – Bạn nên sử dụng đường dẫn tuyệt đối và cụ thể nhé. :
– Nếu bạn để thông tin file ở đường dẫn khác mặc định “~/.my.cnf” và bạn muốn chương trình mysql được chỉ định load thông tin file ở đường dẫn đó thì hãy dùng option “–defaults-extra-file=” . Option này sẽ chỉ cho MySQL biết đường dẫn cụ thể và chính xác để load thông tin user/pass nếu có trong file đó để sử dụng.
– Bạn nên sử dụng đường dẫn tuyệt đối và cụ thể nhé.

# mysql --defaults-extra-file=/tmp/.my.cnf

  Xong rồi các bạn nhé. Chúc các bạn thành công.
Xong rồi các bạn nhé. Chúc các bạn thành công.