Kết nối từ xa cửa sổ mysql

Một môi trường phân tán đã trở thành một yêu cầu đối với nhiều dự án. Các máy chủ cơ sở dữ liệu riêng biệt có thể tăng cường bảo mật và cho phép bạn mở rộng quy mô tài nguyên một cách nhanh chóng. Không cần truy cập từ xa vào MySQL nếu ứng dụng web và cơ sở dữ liệu của bạn nằm trên cùng một máy. Nếu ứng dụng web hoặc cơ sở dữ liệu của bạn được lưu trữ trên các máy chủ riêng biệt, bạn sẽ cần bật Truy cập từ xa vào MySQL

Cài đặt mặc định của máy chủ MySQL là lắng nghe các kết nối từ localhost. Điều này có nghĩa là nó chỉ có thể được truy cập bởi các ứng dụng chạy trên cùng một máy. Tuy nhiên, có một số trường hợp có thể cần phải kết nối từ một địa điểm từ xa. Bạn có thể phải kết nối với Máy chủ MySQL từ xa từ hệ thống cục bộ của mình hoặc từ cài đặt nhiều máy chủ nơi ứng dụng chạy trên một máy khác với máy chủ cơ sở dữ liệu. Bạn có thể truy cập máy chủ MySQL qua Đường hầm SSH hoặc định cấu hình máy chủ MySQL để các kết nối từ xa được chấp nhận

Bài viết này giải thích cách tạo kết nối từ xa đến Máy chủ MySQL

 

điều kiện tiên quyết

Truy cập thông tin sau trước khi bạn bắt đầu hướng dẫn này

  • Một dòng lệnh hoặc cửa sổ đầu cuối
  • Một máy chủ MySQL từ xa
  • Quyền root cho máy từ xa và máy cục bộ

 

Định cấu hình máy chủ MySQL – Chỉnh sửa tệp cấu hình MySQL của bạn

Trước tiên, hãy thiết lập máy chủ MySQL để nghe một địa chỉ IP cụ thể hoặc tất cả các địa chỉ IP. Cách tốt nhất để đảm bảo rằng máy khách và máy chủ MySQL có thể giao tiếp qua mạng riêng là làm cho máy chủ MySQL chỉ nghe trên IP riêng

Nếu bạn muốn kết nối với máy chủ qua mạng công cộng, thì hãy đặt máy chủ MySQL để nó lắng nghe trên tất cả các địa chỉ IP. Chỉnh sửa tệp cấu hình MySQL để thay đổi hoặc thêm giá trị của tùy chọn địa chỉ liên kết. Bạn có thể chỉ định một địa chỉ IP hoặc nhiều dải IP. Nếu địa chỉ là 0. 0. 0. 0, máy chủ MySQL sẽ chấp nhận các kết nối từ tất cả các giao diện IPv4 của máy chủ. thay vì 0. 0. 0. 0, bạn có thể sử dụng. nếu IPv6 được cấu hình trên hệ thống của bạn

Tùy thuộc vào bản phân phối bạn đang sử dụng, vị trí của các tệp cấu hình MySQL sẽ khác nhau. Trong Ubuntu và Debian, tệp được đặt tại /etc/mysql/mysql. conf. d/mysqld. cnf

Mở tài liệu bằng trình soạn thảo văn bản của bạn

osboxes@osboxes. ~$ sudo gedit /etc/mysql/mysql. conf. d/mysqld. cnf

 

Kết nối từ xa cửa sổ mysql

Tìm một dòng bắt đầu bằng địa chỉ liên kết và đặt giá trị của nó làm địa chỉ IP mà máy chủ MySQL sẽ lắng nghe

Giá trị mặc định cho là 127. 0. 0. 1 (chỉ nghe trong localhost)

Kết nối từ xa cửa sổ mysql

Trong ví dụ sau, chúng tôi sẽ đặt máy chủ MySQL để nó lắng nghe trên tất cả các giao diện IPv4. Chúng tôi sẽ thay đổi giá trị của địa chỉ liên kết thành 0. 0. 0. 0

Kết nối từ xa cửa sổ mysql

Nếu bạn thấy một dòng có bỏ qua mạng trong đó, hãy xóa nó. Hoặc bình luận bằng cách chèn # vào cuối dòng

Ghi chú. mysql 8. 0 trở lên có thể không bao gồm chỉ thị địa chỉ liên kết theo mặc định trong mysqld. tập tin cnf. Trong những trường hợp như vậy, bạn nên thêm dòng chỉ thị địa chỉ liên kết vào tệp dưới cùng trong tiểu mục [mysqld]

Lưu và thoát tệp cấu hình sau khi bạn đã thực hiện các thay đổi

Để các thay đổi có hiệu lực, hãy khởi động lại MySQL. Dịch vụ chỉ có thể được khởi động lại bởi người dùng root hoặc người dùng sudo

Nhập lệnh bên dưới để khởi động lại MySQL trên Ubuntu hoặc Debian

osboxes@osboxes. ~$ Sudo systemctl khởi động lại mysql

 

Kết nối từ xa cửa sổ mysql

 

Thiết lập tường lửa để cho phép kết nối MySQL từ xa

Cơ sở dữ liệu MySQL của bạn bây giờ sẽ cho phép kết nối từ xa từ các thiết bị sử dụng địa chỉ IP của bạn. Giá trị này có thể được đặt trong tệp cấu hình MySQL của bạn hoặc từ tất cả các thiết bị nếu giá trị này bằng 0. 0. 0. 0. Tường lửa thiết bị hoặc tường lửa mạng của bạn sẽ vẫn chặn kết nối

Máy chủ và máy tính sử dụng tường lửa để ngăn các kết nối bị chặn trừ khi quyền truy cập được cấp cho một cổng cụ thể

Các máy chủ Linux thường sử dụng iptables để hoạt động như tường lửa mặc định của họ

Nếu bạn đã thiết lập tường lửa để bảo vệ dữ liệu của máy chủ cơ sở dữ liệu, bạn sẽ cần mở cổng 3306 (cổng mặc định của MySQL) để cho phép lưu lượng truy cập vào MySQL

Hiện tại máy chủ từ xa đang chạy ở địa chỉ ip 10. 0. 2. 15. Vì vậy, bạn chỉ có thể truy cập máy chủ cơ sở dữ liệu từ xa từ một máy bằng cách sử dụng lệnh bên dưới

osboxes@osboxes. ~$ sudo ufw cho phép từ 10. 0. 2. 15 đến bất kỳ cổng nào 3306

 

Kết nối từ xa cửa sổ mysql

Ngoài ra, bạn cũng có thể cho phép kết nối với cơ sở dữ liệu MySQL của mình từ bất kỳ địa chỉ IP nào bằng cách sử dụng lệnh sau

sudo ufw cho phép 3306

 

Lệnh bên dưới cho phép truy cập từ bất kỳ địa chỉ IP nào vào cổng MySQL nếu bạn sử dụng tường lửa iptables. Điều này cực kỳ không an toàn

sudo iptables -A INPUT -p tcp –destination-port 3306 -j CHẤP NHẬN

 

Cho phép truy cập từ xa vào cơ sở dữ liệu MySQL

Nếu bạn không có cơ sở dữ liệu, bạn sẽ cần một cái để bắt đầu. Đăng nhập vào MySQL trước bằng lệnh sau

osboxes@osboxes. ~$ sudo mysql -u root -p

 

Kết nối từ xa cửa sổ mysql

Khi bạn đăng nhập, hãy tạo một cơ sở dữ liệu mới có tên testdb bằng lệnh sau

mysql> TẠO CƠ SỞ DỮ LIỆU testdb;

 

Tiếp theo, tạo một người dùng mới có tên testuser bằng lệnh sau

mysql> TẠO NGƯỜI DÙNG ‘người kiểm tra’@’10. 0. 2. 15’ ĐƯỢC XÁC ĐỊNH BỞI ‘mật khẩu’;

 

Tiếp theo, cấp quyền truy cập cho người dùng từ xa vào cơ sở dữ liệu mới được tạo bằng lệnh sau

mysql> CẤP TẤT CẢ CÁC ĐẶC QUYỀN TRÊN testdb. * ĐẾN 'người kiểm tra'@'10. 0. 2. 15’ CÓ LỰA CHỌN TRỢ CẤP;

 

Tiếp theo, xóa các đặc quyền bằng lệnh sau

mysql> ĐẶC QUYỀN FLUSH;

 

Tiếp theo, xác minh các đặc quyền bạn đã được cấp bằng lệnh này

mysql> HIỂN THỊ TIỀN CẤP CHO ‘người kiểm tra’@’10. 0. 2. 15’;

 

Kết nối từ xa cửa sổ mysql

Cuối cùng, thoát khỏi MySQL bằng lệnh sau

mysql> THOÁT;

 

Kết nối từ xa cửa sổ mysql

 

Xác minh kết nối từ xa MySQL

MySQL hiện hỗ trợ các kết nối từ xa. Bây giờ là lúc để xác minh rằng kết nối MySQL đã được thiết lập từ một máy chủ từ xa

 

Để kết nối với máy chủ MySQL từ máy chủ từ xa, hãy sử dụng lệnh sau

osboxes@osboxes. ~$ mysql -u người kiểm tra -p -h 10. 0. 2. 15

 

Tên người dùng MySQL của bạn được biểu thị bằng tham số tên người dùng -u trong lệnh. Tùy chọn -h mysql_server_ip là IP hoặc tên máy chủ của máy chủ MySQL của bạn. Bạn sẽ được yêu cầu nhập mật khẩu cho tên người dùng MySQL của mình bằng tùy chọn -p

Bạn sẽ được yêu cầu cung cấp mật khẩu người dùng MySQL như hình bên dưới. Vì chúng tôi đã đặt “password” làm mật khẩu cho người kiểm tra, bạn cần nhập mật khẩu đó để khởi động mysql trên máy chủ từ xa

Kết nối từ xa cửa sổ mysql

Cấp quyền truy cập đọc và ghi từ xa vào MySQL

Để cấp quyền truy cập ghi và đọc cho người dùng MySQL từ xa, hãy sử dụng lệnh sau

mysql> CẤP CHỌN, CHÈN, CẬP NHẬT, XÓA TRÊN testdb. * ĐẾN 'người kiểm tra'@'10. 0. 2. 15’ CÓ LỰA CHỌN TRỢ CẤP;

 

Kết nối từ xa cửa sổ mysql

 

Để cấp quyền truy cập chỉ nối thêm cho người dùng, hãy sử dụng lệnh sau

mysql> LỰA CHỌN CẤP, CHÈN TRÊN testdb. * ĐẾN 'người kiểm tra'@'10. 0. 2. 15’ CÓ LỰA CHỌN TRỢ CẤP;

 

Kết nối từ xa cửa sổ mysql

 

Để thu hồi tất cả các đặc quyền của người kiểm tra, hãy sử dụng lệnh sau

mysql> THU HỒI TẤT CẢ CÁC ĐẶC QUYỀN trên testdb. * TỪ ‘người kiểm tra’@’10. 0. 2. 15’;

 

Kết nối từ xa cửa sổ mysql

Nếu bạn có thể truy cập cơ sở dữ liệu của mình, điều đó có nghĩa là tệp cấu hình của bạn chứa chỉ thị địa chỉ liên kết. Điều quan trọng cần lưu ý là đặt địa chỉ liên kết thành 0. 0. 0. 0 có thể cho phép kết nối đến máy chủ của bạn từ bất kỳ địa chỉ IP nào. Bạn có thể chỉ định địa chỉ IP chính xác của máy chủ từ xa thay vì 0. 0. 0. 0 trong tệp cấu hình MySQL của bạn. Điều này cho phép bạn chỉ định địa chỉ IP chính xác của máy chủ từ xa để kết nối được giới hạn ở địa chỉ đó

Nếu bạn vẫn gặp sự cố khi truy cập cơ sở dữ liệu từ xa, có thể bạn đã bỏ lỡ một trong các bước sau. Thử lại và cấp quyền truy cập từ xa vào MySQL

 

Sự kết luận

Nếu bạn muốn lưu trữ cơ sở dữ liệu của mình trên một máy chủ khác, chúng tôi hy vọng bạn thấy bài viết này hữu ích. Chúng tôi đã cung cấp hướng dẫn về cách cấp quyền truy cập từ xa vào MySQL. Tóm lại, trước tiên bạn phải chỉnh sửa tệp cấu hình mysql và thêm địa chỉ liên kết. Sau đó, bạn phải thiết lập tường lửa để cho phép truy cập từ xa vào MySQL. Khi đã có tường lửa, hãy cho phép truy cập từ xa vào cơ sở dữ liệu MySQL và cuối cùng xác minh kết nối từ xa của MySQL. Giờ đây, bạn có thể kết nối với máy chủ MySQL của mình từ xa từ bất kỳ máy nào có thông tin đăng nhập chính xác