Giới thiệu
Một trong những điều đầu tiên bạn cần nghĩ đến khi làm việc với cơ sở dữ liệu MySQL là cách kết nối và tương tác với phiên bản cơ sở dữ liệu. Điều này yêu cầu sự phối hợp giữa máy khách cơ sở dữ liệu - thành phần bạn sử dụng để tương tác với cơ sở dữ liệu và máy chủ cơ sở dữ liệu - phiên bản MySQL thực tế lưu trữ, tổ chức và cung cấp quyền truy cập vào dữ liệu của bạn.
Do đó, bạn cần hiểu cách kết nối với tư cách là khách hàng bằng cách cung cấp thông tin cần thiết để xác thực. Trong hướng dẫn này, chúng tôi sẽ trình bày cách kết nối với cơ sở dữ liệu MySQL bằng mysql
gốc máy khách dòng lệnh - một trong những cách phổ biến và hữu ích nhất để tương tác với một phiên bản cơ sở dữ liệu.
Trong hướng dẫn đi kèm, bạn có thể tìm hiểu cách định cấu hình xác thực của MySQL để đáp ứng nhu cầu dự án của bạn. Hãy xem xét đọc cả hai hướng dẫn để có bức tranh đầy đủ hơn về cách xác thực hoạt động trong MySQL.
Thông tin cơ bản về mysql
khách hàng
mysql
máy khách là máy khách dòng lệnh mặc định và trình bao SQL cho MySQL. Bạn có thể sử dụng nó một cách tương tác để tạo ra một phiên shell với máy chủ của mình hoặc bạn có thể cung cấp cho nó các tệp SQL để chạy mà không cần sự tương tác của người dùng. Nó đặc biệt hữu ích khi triển khai các tùy chọn cấu hình và thiết lập môi trường của bạn. Khám phá tương tác và truy vấn đặc biệt cũng là một giải pháp phù hợp mạnh mẽ trong khi phát triển các mẫu truy cập mà chương trình của bạn sẽ sử dụng.
Cách kết nối và xác thực với máy chủ MySQL phụ thuộc vào cấu hình máy chủ của bạn. Trong các phần sau, chúng ta sẽ xem xét một số tùy chọn kết nối cơ bản. Để rõ ràng hơn, chúng tôi sẽ phân biệt giữa kết nối cục bộ và kết nối từ xa:
- kết nối cục bộ :một kết nối trong đó máy khách và phiên bản MySQL được đặt trên cùng một máy chủ
- kết nối từ xa :nơi máy khách đang kết nối với phiên bản MySQL có thể truy cập mạng đang chạy trên một máy tính khác
Hãy bắt đầu với việc kết nối với cơ sở dữ liệu từ cùng một máy tính.
Kết nối với cơ sở dữ liệu cục bộ bằng mysql
Không có bất kỳ đối số nào, mysql
lệnh cố gắng kết nối với tệp ổ cắm Unix để truy cập cơ sở dữ liệu cục bộ. Thông thường, vị trí tệp socket mặc định được xác định bởi tệp cấu hình hoặc được biên dịch theo giá trị mặc định. Theo mặc định, tên người dùng hệ điều hành của bạn được sử dụng để cố gắng kết nối với cơ sở dữ liệu.
Vì vậy, nếu người dùng hiện tại của bạn là người dùng MySQL hợp lệ trên cơ sở dữ liệu cục bộ của bạn, bạn có thể thử kết nối bằng cách nhập:
mysql
Nếu tài khoản tồn tại và không yêu cầu mật khẩu hoặc nếu xác thực ổ cắm MySQL được định cấu hình cho tài khoản, bạn sẽ được đăng nhập tự động. Nếu tên người dùng không tồn tại trong MySQL hoặc nếu yêu cầu mật khẩu hoặc xác thực bổ sung, lệnh sẽ không thành công.
Để kiểm soát cách mà mysql
cố gắng đăng nhập vào cơ sở dữ liệu, chuyển thông tin bổ sung bằng lệnh của bạn bằng cách sử dụng các tùy chọn dòng lệnh:
-
--user=<username>
hoặc-u <username>
:chỉ định người dùng MySQL để xác thực. -
--password
hoặc-p
:yêu cầu MySQL nhắc nhập mật khẩu cho người dùng MySQL. -
--host=127.0.0.1
hoặc-h 127.0.0.1
:nói vớimysql
để kết nối với phiên bản MySQL cục bộ bằng cách sử dụng địa chỉ loopback TCP cục bộ thay vì ổ cắm Unix. Điều này rất quan trọng để sử dụng nếu máy chủ MySQL của bạn không được định cấu hình để sử dụng các ổ cắm Unix.
Lưu ý: MySQL thông dịch 127.0.0.1
khác với localhost
. Chỉ định 127.0.0.1
cho biết rằng bạn muốn sử dụng kết nối TCP, trong khi localhost
sẽ khiến MySQL cố gắng sử dụng ổ cắm Unix để kết nối với cơ sở dữ liệu cục bộ.
Vì vậy, nếu bạn cần đăng nhập với tư cách người dùng MySQL eva
bằng mật khẩu, nhưng vẫn sử dụng ổ cắm Unix để kết nối, bạn có thể nhập:
mysql --user=eva --password
mysql
khách hàng sẽ nhắc bạn nhập mật khẩu cho tài khoản.
Nếu bạn muốn cố gắng đăng nhập bằng cùng một tên người dùng nhưng qua kết nối TCP vào cơ sở dữ liệu cục bộ, thay vào đó bạn phải nhập:
mysql --user=eva --password --host=127.0.0.1
Cấu hình xác thực mặc định cũng như tên người dùng và mật khẩu quản trị ban đầu có thể khác nhau tùy thuộc vào cách MySQL được cài đặt. Tuy nhiên, nhiều phương pháp thiết lập MySQL để sử dụng ổ cắm Unix và bao gồm root
mặc định người dùng làm tài khoản quản trị.
Trong những trường hợp này, bạn có thể đăng nhập vào cơ sở dữ liệu với tư cách root
người dùng bằng cách nhập:
mysql --user=root --password
Bạn sẽ được nhắc nhập mật khẩu quản trị đã được chọn hoặc tạo trong quá trình cài đặt để tiếp tục.
Tất cả các phương pháp này cho phép bạn kết nối với cơ sở dữ liệu MySQL cục bộ.
Kết nối với cơ sở dữ liệu từ xa
Nếu bạn muốn kết nối với cơ sở dữ liệu MySQL từ xa, bạn sẽ phải cung cấp vị trí mạng của máy chủ từ xa và có khả năng thêm một số thông tin bổ sung.
Các phương pháp xác thực có sẵn khác nhau dựa trên cấu hình của phiên bản MySQL. Tuy nhiên, thông thường nhất, bạn cần cung cấp các tham số sau để xác thực:
Option | Mô tả |
---|---|
--host= hoặc -h | Tên máy chủ mạng hoặc địa chỉ IP của máy chủ MySQL. |
--port= hoặc -P | Cổng mạng mà máy chủ MySQL đang chạy. Nếu máy chủ đang sử dụng cổng 3306, cổng MySQL mặc định, thì tham số này có thể bị bỏ qua. |
--user= hoặc -u | Tên người dùng cơ sở dữ liệu bạn muốn kết nối. Nếu không được chỉ định, tên người dùng hệ điều hành của bạn sẽ được sử dụng. |
--password hoặc -p | Cho biết rằng bạn muốn cung cấp mật khẩu cho tài khoản được chỉ định. mysql ứng dụng khách sẽ nhắc bạn nhập mật khẩu sau khi bạn nhấn Enter . |
Cơ sở dữ liệu MySQL | Tên cơ sở dữ liệu MySQL mà bạn muốn truy cập. Nếu không được chỉ định, mysql sẽ kết nối với máy chủ mà không cần kết nối với cơ sở dữ liệu cụ thể. |
Định dạng cơ bản để kết nối với cơ sở dữ liệu từ xa thường trông giống như sau:
mysql --host=<hostname> --port=<port> --user=<user> --password <database>
Sau khi nhấn Enter , mysql
khách hàng sẽ nhắc bạn nhập mật khẩu. Nếu bạn xác thực thành công, một phiên MySQL tương tác mới sẽ được bắt đầu.
Ví dụ, chúng ta có thể tưởng tượng muốn kết nối với cơ sở dữ liệu với các yêu cầu sau:
- tên máy chủ:
myhost
- cổng:1234
- cơ sở dữ liệu:
applicationdb
- tên người dùng:
myapplicationuser
- mật khẩu:
mypass
Đang gọi mysql
với các tùy chọn sau sẽ cho phép bạn xác thực:
mysql --host=myhost --port=1234 --user=myapplicationuser --password applicationdb
Khi nhấn enter, bạn sẽ được nhắc nhập mật khẩu để bạn có thể xác thực bằng mypass
.
Điều chỉnh cấu hình xác thực của máy chủ MySQL
Nếu bạn muốn sửa đổi các quy tắc chỉ định cách người dùng có thể xác thực đối với các phiên bản MySQL của bạn, bạn có thể làm như vậy bằng cách sửa đổi cấu hình máy chủ của mình. Bạn có thể tìm hiểu cách sửa đổi cấu hình xác thực của MySQL trong bài viết này.
Kết luận
Trong hướng dẫn này, chúng tôi đã đề cập đến xác thực MySQL từ phía máy khách. Chúng tôi đã trình bày cách sử dụng mysql
máy khách dòng lệnh để kết nối với cả phiên bản cơ sở dữ liệu cục bộ và từ xa.
Biết cách kết nối với các phiên bản MySQL khác nhau là một trong những bước đầu tiên bạn cần hiểu khi bắt đầu làm việc với hệ thống cơ sở dữ liệu. Bạn có thể chạy một phiên bản MySQL cục bộ để phát triển mà không cần bất kỳ xác thực đặc biệt nào, nhưng cơ sở dữ liệu của bạn trong quá trình dàn dựng và sản xuất gần như chắc chắn sẽ yêu cầu xác thực. Có thể xác thực trong cả hai trường hợp sẽ cho phép bạn hoạt động tốt trong các môi trường khác nhau.