Computer >> Máy Tính >  >> Phần mềm >> Phần mềm

Cách cho phép kết nối từ xa với MySQL

Nếu bạn đang làm việc với cơ sở dữ liệu MySQL, thì bạn đã nhận thức được những thách thức mà bạn phải đối mặt trong việc giữ an toàn cho cơ sở dữ liệu của mình. Từ những nỗ lực tấn công cơ sở dữ liệu bằng cách sử dụng SQL injection đến các cuộc tấn công bạo lực, thật khó để giữ cho dữ liệu của bạn an toàn, đặc biệt nếu bạn đang làm việc với cơ sở dữ liệu từ xa.

Có nhiều cách để cấu hình máy chủ SQL để cho phép kết nối từ xa, nhưng bạn cần phải cẩn thận, vì việc cho phép kết nối từ xa trên máy chủ MySQL có thể khiến cơ sở dữ liệu của bạn trở thành mục tiêu dễ dàng cho tin tặc. Nếu bạn muốn cho phép các kết nối từ xa, an toàn với cơ sở dữ liệu MySQL, thì đây là những điều bạn cần biết.

Cách cho phép kết nối từ xa với MySQL

Trước khi bắt đầu

Trước khi bạn thực hiện bất kỳ thay đổi nào đối với cơ sở dữ liệu MySQL của mình, điều quan trọng là bạn phải sao lưu cơ sở dữ liệu của mình , đặc biệt nếu bạn đang làm việc trên máy chủ sản xuất (máy chủ đang được sử dụng). Bất kỳ thay đổi nào bạn thực hiện đối với cơ sở dữ liệu của mình hoặc máy chủ lưu trữ nó, có thể dẫn đến mất dữ liệu nghiêm trọng nếu xảy ra sự cố.

Bạn cũng có thể thấy rằng những thay đổi đối với kết nối của máy chủ của bạn có thể khiến bạn không thể truy cập sau đó. Nếu điều này xảy ra, bạn có thể cần tham khảo ý kiến ​​của quản trị viên máy chủ để được hỗ trợ thêm. Một ý tưởng hay là thử bất kỳ thay đổi nào trên máy chủ MySQL chạy cục bộ để kiểm tra xem các thay đổi của bạn có hoạt động hay không trước khi thử từ xa.

Cũng có khả năng là nếu bạn đang thực hiện thay đổi đối với máy chủ từ xa, bạn sẽ cần một cách an toàn để kết nối và thực hiện thay đổi. SSH (Vỏ an toàn) thường là cách tốt nhất để làm điều này, vì nó cho phép bạn kết nối với máy chủ từ xa của mình. Bạn cũng có thể sử dụng SSH để kết nối với các máy chủ trên mạng cục bộ của mình, chẳng hạn như các máy chủ được lưu trữ trên Raspberry Pi.

Cách cho phép kết nối từ xa với MySQL

Hướng dẫn này sẽ hướng dẫn bạn qua các bước để định cấu hình MySQL để cho phép kết nối từ xa, nhưng trước tiên bạn cần đảm bảo rằng bạn có quyền truy cập trực tiếp hoặc từ xa vào máy chủ lưu trữ máy chủ MySQL của bạn.

Giả sử bạn không có quyền truy cập từ xa vào máy chủ của mình qua SSH (ví dụ:). Trong trường hợp đó, bạn sẽ không thể định cấu hình cơ sở dữ liệu MySQL của mình để cho phép kết nối từ xa trực tiếp trừ khi tài khoản mySQL gốc của bạn đã cho phép kết nối từ xa. Vì vậy, bạn sẽ cần thiết lập kết nối này trước khi có thể tiếp tục.

Chỉnh sửa tệp cấu hình MySQL của bạn

Bước đầu tiên trong việc định cấu hình MySQL để cho phép các kết nối từ xa là chỉnh sửa tệp cấu hình MySQL của bạn. Đến giai đoạn này, hướng dẫn này sẽ giả sử bạn đã kết nối với máy chủ, PC hoặc Mac lưu trữ cơ sở dữ liệu mySQL của bạn từ xa và có quyền truy cập bảng điều khiển.

Ngoài ra, bạn có thể định cấu hình máy chủ MySQL cục bộ bằng cách sử dụng thiết bị đầu cuối mở trên Mac hoặc Linux hoặc trình soạn thảo văn bản trên Windows.

  1. Để bắt đầu, hãy sử dụng trình soạn thảo văn bản bảng điều khiển ưa thích của bạn để chỉnh sửa tệp cơ sở dữ liệu MySQL của bạn. Trên Linux, nhập sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf vào cửa sổ đầu cuối hoặc SSH để chỉnh sửa tệp này bằng cách sử dụng nano trình soạn thảo (giả sử cơ sở dữ liệu MySQL của bạn ở vị trí mặc định) .
Cách cho phép kết nối từ xa với MySQL
  1. Nếu bạn đang chạy Windows, hãy mở File Explorer và truy cập thư mục chứa cài đặt MySQL của bạn (ví dụ: C:/ Program Files / MySQL / MySQL Server 8.0 ). Mở my.ini sử dụng trình soạn thảo văn bản mặc định của bạn (ví dụ:Notepad) bằng cách bấm đúp vào mục nhập. Nếu nó không có ở đó, hãy tạo tệp trước.
Cách cho phép kết nối từ xa với MySQL
  1. Trên Mac, mở cửa sổ dòng lệnh và nhập sudo nano /usr/local/etc/my.cnf . Đây là tệp cấu hình mặc định cho MySQL nếu bạn đã cài đặt MySQL bằng homebrew.
Cách cho phép kết nối từ xa với MySQL

Các vị trí được tham chiếu ở trên là vị trí mặc định cho các tệp cấu hình MySQL. Nếu các lệnh này không hoạt động, bạn sẽ cần tìm kiếm các tệp có liên quan ( my.cnf , mysqld.cnf hoặc my.ini ) theo cách thủ công để định vị đường dẫn tệp có liên quan.

Đặt Dải IP Địa chỉ Liên kết An toàn

  1. Sau khi bạn đã mở tệp cấu hình MySQL cho máy chủ của mình, hãy sử dụng phím mũi tên trên bàn phím để truy cập địa chỉ liên kết phần của tệp. Dải IP này giới hạn các kết nối đến cơ sở dữ liệu của bạn, thường được đặt để chỉ cho phép các kết nối từ máy cục bộ hoặc máy chủ sử dụng 127.0.0.1 .
Cách cho phép kết nối từ xa với MySQL
  1. Nếu bạn muốn định cấu hình cơ sở dữ liệu MySQL của mình để cho phép kết nối từ các thiết bị sử dụng kết nối internet hiện tại, trước tiên hãy tìm địa chỉ IP công cộng của bạn, sau đó thay thế 127.0.0.1 với địa chỉ IP đó. Ngoài ra, hãy thay thế nó bằng một địa chỉ IP cho thiết bị hoặc máy chủ mà bạn muốn cho phép kết nối.
Cách cho phép kết nối từ xa với MySQL
  1. Trong một số trường hợp, bạn có thể muốn cho phép tất cả kết nối từ xa với cơ sở dữ liệu MySQL. Điều này mang lại rủi ro cao nhất và không được sử dụng trên máy chủ sản xuất. Tuy nhiên, nếu bạn muốn cho phép điều này, hãy thay thế 127.0.0.1 với 0.0.0.0 .
Cách cho phép kết nối từ xa với MySQL
  1. Ghi chú về cổng giá trị trong Cài đặt cơ bản tiết diện. Điều này sẽ được yêu cầu trong phần tiếp theo. Nếu nó không hiển thị, giá trị mặc định sẽ được sử dụng, đó là cổng 3306 . Bạn có thể thêm cổng của riêng mình bằng cách nhập port =xxxx trên một dòng mới, thay thế xxxx với giá trị cổng phù hợp.
Cách cho phép kết nối từ xa với MySQL
  1. Khi bạn đã định cấu hình địa chỉ ràng buộc trong tệp cấu hình MySQL của bạn, hãy lưu tệp. Nếu bạn đang sử dụng Linux, hãy chọn Ctrl + O Ctrl + X để làm điều này. Trên Mac, chọn Command + O Command + X . Người dùng Windows có thể lưu bằng cách chọn Tệp > Lưu .
Cách cho phép kết nối từ xa với MySQL
  1. Tiếp theo, người dùng Linux và Mac có thể khởi động lại MySQL bằng cách nhập mysql.server stop &&mysql.server start hoặc mysql.server khởi động lại . Bạn có thể cần nâng cấp lệnh bằng cách sử dụng sudo (ví dụ: sudo mysql.server restart ) và sử dụng đường dẫn thích hợp đến tệp mysql.server (ví dụ: /usr/local/bin/mysql.server ).
Cách cho phép kết nối từ xa với MySQL
  1. Nếu lệnh trên không hoạt động, hãy thử khởi động lại dịch vụ sudo mysql thay vào đó.
Cách cho phép kết nối từ xa với MySQL
  1. Để khởi động lại MySQL trên Windows, hãy mở cửa sổ PowerShell mới bằng cách nhấp chuột phải vào trình đơn Bắt đầu và chọn Windows PowerShell (Quản trị) . Trong cửa sổ PowerShell, nhập net stop mysql80 tiếp theo là net start mysql80 , thay thế mysql80 với tên dịch vụ chính xác trên PC của bạn.
Cách cho phép kết nối từ xa với MySQL

Nếu bạn không chắc tên dịch vụ chính xác trên Windows, hãy nhập net start để tìm nó. Nếu bạn không thể tải lại cấu hình của mình, hãy khởi động lại máy chủ và tải lại MySQL theo cách thủ công (nếu cần).

Định cấu hình tường lửa của bạn

Ở giai đoạn này, cơ sở dữ liệu MySQL của bạn sẽ cho phép kết nối từ xa từ các thiết bị sử dụng địa chỉ IP bạn đặt làm địa chỉ ràng buộc giá trị 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 bạn đặt giá trị này thành 0.0.0.0 thay thế). Tuy nhiên, các kết nối sẽ vẫn bị chặn bởi thiết bị hoặc tường lửa mạng của bạn .

Hầu hết các máy chủ và PC sử dụng tường lửa để chặn các kết nối trừ khi được cấp quyền truy cập vào một cổng cụ thể. Các bước để định cấu hình điều này sẽ khác nhau, tùy thuộc vào việc bạn đang chạy MySQL trên Windows hay Linux. Tường lửa của Mac bị tắt theo mặc định, vì vậy bạn không cần phải hoàn thành bất kỳ bước bổ sung nào tại đây.

Định cấu hình tường lửa Linux

Nhiều máy chủ Linux sử dụng iptables làm tiện ích tường lửa mặc định. Bạn có thể định cấu hình nó bằng cách làm theo các bước bên dưới.

  1. Mở một thiết bị đầu cuối hoặc kết nối SSH và nhập sudo iptables -A INPUT -p tcp -s X.X.X.X –dport YYYY -j CHẤP NHẬN . Thay thế X.X.X.X với địa chỉ IP cho thiết bị bạn muốn cho phép kết nối MySQL từ và thay thế YYYY với giá trị cổng phù hợp từ tệp cấu hình MySQL của bạn (ví dụ: 3306 ).
Cách cho phép kết nối từ xa với MySQL
  1. Điều này sẽ tạm thời định cấu hình tường lửa. Nếu bạn đang sử dụng máy chủ Linux dựa trên Debian hoặc Ubuntu, hãy thực hiện thay đổi này vĩnh viễn bằng cách nhập sudo netfilter-dai dẳng lưu sudo netfilter-tải lại liên tục vào thiết bị đầu cuối hoặc cửa sổ SSH.
Cách cho phép kết nối từ xa với MySQL

Nếu iptables không phải là công cụ tường lửa mặc định cho bản phân phối Linux của bạn, bạn sẽ cần tham khảo hướng dẫn sử dụng của bản phân phối để biết thêm thông tin. Nếu các gói nhất định (chẳng hạn như netfilter-dai dẳng ) không khả dụng, hãy sử dụng công cụ lưu trữ phần mềm của bản phân phối của bạn để cài đặt nó (ví dụ: sudo apt install netfilter-dai dẳng ).

Định cấu hình tường lửa của Windows

Nếu bạn đang sử dụng PC hoặc máy chủ Windows để lưu trữ cơ sở dữ liệu của mình, bạn có thể định cấu hình tường lửa của mình bằng các bước sau:

  1. Nhấp chuột phải vào trình đơn Bắt đầu và chọn Chạy .
Cách cho phép kết nối từ xa với MySQL
  1. Trong Chạy hộp, nhập wf.msc và chọn OK .
Cách cho phép kết nối từ xa với MySQL
  1. Trong Bộ bảo vệ Windows cửa sổ, chọn Quy tắc đến > Quy tắc mới .
Cách cho phép kết nối từ xa với MySQL
  1. Trong Trình hướng dẫn quy tắc đến mới cửa sổ, chọn Cổng > Tiếp theo .
Cách cho phép kết nối từ xa với MySQL
  1. Ở trình đơn tiếp theo, chọn TCP từ các tùy chọn, hãy nhập 3306 (hoặc bất kỳ giá trị cổng nào được liệt kê trong tệp cấu hình MySQL của bạn), sau đó chọn Tiếp theo .
Cách cho phép kết nối từ xa với MySQL
  1. Tại Hành động , hãy để tùy chọn mặc định thành Cho phép kết nối đã bật, sau đó chọn Tiếp theo .
Cách cho phép kết nối từ xa với MySQL
  1. Xác nhận rằng bạn muốn áp dụng quy tắc cho tất cả các loại mạng, sau đó chọn Tiếp theo .
Cách cho phép kết nối từ xa với MySQL
  1. Nhập tên mô tả cho quy tắc (ví dụ: MySQL ) trong cổng được cung cấp, sau đó chọn Hoàn tất để thêm nó vào danh sách các quy tắc tường lửa của bạn.
Cách cho phép kết nối từ xa với MySQL

Nếu bạn gặp sự cố khi kết nối, hãy lặp lại các bước này ở trên, đảm bảo tạo quy tắc gửi đi mới trong cài đặt tường lửa của bạn bằng cách sử dụng các chi tiết tương tự (cổng 3306, v.v.). Bạn cũng có thể cần phải định cấu hình bộ định tuyến mạng cục bộ của mình để mở các cổng bị chặn cần thiết để cho phép các kết nối đến và đi đến cơ sở dữ liệu của bạn.

Kết nối với máy chủ từ xa bằng MySQL

Sau khi định cấu hình cơ sở dữ liệu MySQL của bạn để cho phép kết nối từ xa, bạn sẽ thực sự cần thiết lập kết nối với nó. Bạn có thể thực hiện việc này bằng cách sử dụng mysql lệnh ( mysql.exe trên Windows) từ một thiết bị đầu cuối hoặc cửa sổ PowerShell.

Nếu đang chạy Windows, bạn cần đảm bảo rằng MySQL được cài đặt cục bộ trước khi bắt đầu. Người dùng Mac có thể cài đặt MySQL bằng homebrew từ thiết bị đầu cuối ( brew install mysql ), trong khi người dùng Linux có thể sử dụng kho ứng dụng cục bộ của họ (ví dụ: sudo apt install mysql ) để cài đặt các gói cần thiết.

Kết nối với MySQL trên Linux hoặc Mac

  1. Để kết nối với máy chủ MySQL từ xa của bạn trên Mac hoặc Linux, hãy mở cửa sổ dòng lệnh mới và nhập tên người dùng mysql -u -h X.X.X.X:XXXX -p . Thay thế X.X.X.X:XXXX bằng địa chỉ IP máy chủ từ xa và số cổng của bạn (ví dụ: 100.200.100.200:3306 ) và tên người dùng bằng tên người dùng MySQL của bạn.
Cách cho phép kết nối từ xa với MySQL
  1. Khi được nhắc, hãy xác nhận mật khẩu của bạn. Nếu kết nối thành công, thông báo thành công sẽ xuất hiện trong thiết bị đầu cuối.

Kết nối với MySQL trên Windows

  1. Để kết nối với máy chủ MySQL từ xa trên Windows, hãy mở cửa sổ PowerShell mới bằng cách nhấp chuột phải vào trình đơn Bắt đầu và chọn Windows PowerShell (Quản trị) .
Cách cho phép kết nối từ xa với MySQL
  1. Trong cửa sổ PowerShell mới, nhập cd “C:\ Program Files \ MySQL \ MySQL Workbench 8.0 \ ”Để nhập đúng thư mục, thay thế thư mục này bằng thư mục cài đặt chính xác trên PC của bạn. Ví dụ:nếu phiên bản MySQL của bạn là 8.0.1, hãy sử dụng MySQL Workbench 8.0.1 thay vào đó.
Cách cho phép kết nối từ xa với MySQL
  1. Từ đó, nhập . \ mysql.exe -u tên người dùng -h X.X.X.X:XXXX -p . Thay thế X.X.X.X:XXXX bằng địa chỉ IP máy chủ từ xa và số cổng của bạn (ví dụ: 100.200.100.200:3306 ) và tên người dùng với tên người dùng MySQL cho phép truy cập từ xa (chẳng hạn như root ). Làm theo mọi hướng dẫn bổ sung trên màn hình.
  2. Cung cấp mật khẩu của bạn, khi được nhắc, để hoàn tất quá trình đăng nhập và truy cập cơ sở dữ liệu MySQL của bạn từ xa.
Cách cho phép kết nối từ xa với MySQL

Nếu cách này không hiệu quả, hãy kết nối với máy chủ hoặc PC lưu trữ máy chủ MySQL của bạn bằng SSH (hoặc truy cập trực tiếp) bằng các bước sau và sử dụng -h localhost lý lẽ. Sau đó, bạn có thể tạo một tài khoản người dùng phù hợp bằng cách làm theo các bước bên dưới.

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

Đến thời điểm này, bạn sẽ có thể kết nối từ xa với máy chủ MySQL của mình bằng tài khoản người dùng gốc của máy chủ hoặc tài khoản người dùng khác có đặc quyền nâng cao. Vì mức độ truy cập này không an toàn, bạn có thể muốn tạo một tài khoản hạn chế hơn để truy cập cơ sở dữ liệu MySQL của mình.

Tài khoản này sẽ có quyền truy cập hạn chế vào máy chủ MySQL của bạn, cho phép nó chỉ tương tác với các cơ sở dữ liệu được chọn. Nó sẽ không thể thực hiện các thay đổi nghiêm trọng hơn, chẳng hạn như truy cập dữ liệu cơ sở dữ liệu khác, tạo tài khoản người dùng mới, v.v.

Bạn sẽ cần có khả năng đăng nhập vào máy chủ MySQL của mình từ xa. Nếu bạn không thể sử dụng tài khoản gốc của mình từ xa, bạn sẽ cần truy cập trình bao máy chủ của mình bằng cách sử dụng mysql ra lệnh thông qua kết nối SSH từ xa hoặc bằng cách truy cập trực tiếp vào PC hoặc máy chủ lưu trữ máy chủ.

  1. Trong trình bao MySQL từ xa của bạn (sử dụng mysql tool), nhập TẠO NGƯỜI DÙNG “tên người dùng” @ ”x.x.x.x” ĐƯỢC XÁC ĐỊNH BẰNG “mật khẩu”; và chọn Enter . Thay thế tên người dùng bằng tên người dùng bạn muốn tạo, x.x.x.x bằng địa chỉ IP bạn muốn kết nối và mật khẩu với một mật khẩu phù hợp.
Cách cho phép kết nối từ xa với MySQL
  1. Bạn sẽ cần cấp cho tài khoản mới của mình các quyền cần thiết. Để thực hiện việc này, hãy nhập CẤP TẤT CẢ TRÊN tên cơ sở dữ liệu. * ĐẾN tên người dùng @ ”x.x.x.x”; và thay thế tên cơ sở dữ liệu, tên người dùng, x.x.x.x với các chi tiết chính xác. Nếu bạn muốn, hãy thay thế tên cơ sở dữ liệu với * để cấp cho nó quyền truy cập vào tất cả các cơ sở dữ liệu.
Cách cho phép kết nối từ xa với MySQL

Với quyền truy cập được cấp, hãy sử dụng các bước trong phần trên để kết nối từ xa với máy chủ của bạn bằng tài khoản mới của bạn (ví dụ: tên người dùng mysql -u -h X.X.X.X:XXXX -p ).

Bảo mật Dữ liệu Cơ sở dữ liệu của Bạn

Cho dù bạn đang làm việc với MySQL hay một loại cơ sở dữ liệu SQL khác, điều quan trọng là phải giữ an toàn cho các kết nối của bạn để duy trì bảo mật dữ liệu của bạn. Một cách tốt để làm điều này là tạo khóa SSH để truy cập từ xa vào máy chủ của bạn, thay vì dựa vào mật khẩu lỗi thời (và dễ đoán).

Nếu lo lắng về việc mất dữ liệu, bạn có thể dễ dàng sao lưu cơ sở dữ liệu của mình trực tuyến. Hầu hết các cơ sở dữ liệu được chạy bằng máy chủ Linux — bạn có thể tự động hóa một bản sao lưu tệp Linux một cách dễ dàng. Nếu đang chạy MySQL trên Windows, bạn có thể thiết lập một hệ thống sao lưu tự động tương tự cho Windows, cho phép bạn khôi phục dữ liệu của mình trong trường hợp khẩn cấp.