Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

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

Thông thường quyền truy cập từ xa vào máy chủ cơ sở dữ liệu MySQL bị vô hiệu hóa vì lý do bảo mật. Tuy nhiên, đôi khi bạn cần cung cấp quyền truy cập từ xa vào máy chủ cơ sở dữ liệu MySQL từ nhà hoặc máy chủ web. Bạn có thể làm theo các bước sau để kích hoạt nó.

Bước 1:Đăng nhập bằng SSH (nếu máy chủ nằm ngoài môi trường hoặc mạng nội bộ của bạn)

Đầu tiên, đăng nhập qua ssh vào máy chủ cơ sở dữ liệu MySQL từ xa từ windows bằng PuTTy hoặc từ Linux bằng SSH

Bước 2:Chỉnh sửa tệp my.cnf

Sau khi kết nối, bạn cần chỉnh sửa tệp cấu hình máy chủ MySQL my.cnf bằng trình soạn thảo văn bản như vi:

  • Trên Debian Linux tệp được đặt tại /etc/mysql/my.cnf vị trí.
  • Trên Red Hat Linux / Fedora / Centos Linux tệp được đặt tại /etc/my.cnf vị trí.

Để chỉnh sửa /etc/my.cnf, hãy chạy:

# vi /etc/my.cnf
  • Trên Windows , tệp my.ini nằm tại C:\ Program Files \ MySQL \ MySQL Server X.Y (X.Y là số phiên bản của máy chủ MySQL)

Đối với windows, hãy mở tệp my.ini trong notepad

Bước 3:Sau khi tệp được mở, tìm dòng có nội dung như sau

[mysqld]

Đảm bảo rằng mạng bỏ qua dòng được nhận xét (hoặc xóa dòng) và thêm dòng sau

bind-address=YOUR-SERVER-IP

Ví dụ:nếu IP máy chủ MySQL của bạn là 173.234.21.12 thì toàn bộ khối sẽ giống như sau:

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/English
bind-address    = 173.234.21.12
# skip-networking
....

Ở đâu,

  • địa chỉ ràng buộc :Địa chỉ IP để liên kết.
  • bỏ qua mạng :Hoàn toàn không lắng nghe các kết nối TCP / IP. Tất cả các tương tác với mysqld phải được thực hiện thông qua Unix socket. Tùy chọn này rất được khuyến khích cho các hệ thống chỉ cho phép các yêu cầu cục bộ. Vì bạn cần cho phép kết nối từ xa, dòng này nên được xóa khỏi my.cnf hoặc nhận xét.

Bước 4:Lưu và đóng tệp

Trên Debian / Ubuntu Linux, nhập lệnh sau để khởi động lại máy chủ mysql:

# /etc/init.d/mysql restart

Trên RHEL / CentOS / Fedora / Scientific Linux, nhập lệnh sau để khởi động lại máy chủ mysql:

# /etc/init.d/mysqld restart

Trên Windows, mở dấu nhắc lệnh với tư cách Quản trị viên và nhập

net stop MySQL
net start MySQL

Bước 5:Cấp quyền truy cập vào địa chỉ IP từ xa

Cấp quyền truy cập vào cơ sở dữ liệu mới

Nếu bạn muốn thêm cơ sở dữ liệu mới có tên foo cho thanh người dùng và IP từ xa 162.72.20.23 thì bạn cần nhập các lệnh sau tại dấu nhắc mysql:

mysql> CREATE DATABASE foo;
mysql> GRANT ALL ON foo.* TO bar@'162.72.20.23' IDENTIFIED BY 'PASSWORD';

Cấp quyền truy cập vào cơ sở dữ liệu hiện có

Giả sử rằng bạn luôn thực hiện kết nối từ IP từ xa có tên 162.72.20.23 tới cơ sở dữ liệu có tên là webdb cho webadmin của người dùng. Để cấp quyền truy cập vào địa chỉ IP này cho cơ sở dữ liệu hiện có, hãy nhập lệnh sau tại dấu nhắc mysql:

mysql> update db set Host='162.72.20.23' where Db='webdb';
mysql> update user set Host='162.72.20.23' where user='webadmin';

Bước 6:Đăng xuất MySQL

Gõ lệnh exit để đăng xuất khỏi mysql:

mysql> exit

Bước 7:Mở cổng 3306

Quy tắc iptables mẫu để mở tường lửa iptables Linux

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT

HOẶC chỉ cho phép kết nối từ xa từ máy chủ web của bạn đặt tại 162.72.20.23:

/sbin/iptables -A INPUT -i eth0 -s 162.72.20.23 -p tcp --destination-port 3306 -j ACCEPT

HOẶC chỉ cho phép kết nối từ xa từ mạng con lan của bạn 192.168.1.0/24:

/sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 3306 -j ACCEPT

Cuối cùng lưu tất cả các quy tắc (lệnh cụ thể RHEL / CentOS):
# service iptables save

Trên windows, đi tới Control Panel> Windows Firewall> Add inbound rule cho cổng 3306

Bước 8:Kiểm tra quyền truy cập từ xa vào cơ sở dữ liệu MySQL

Từ hệ thống từ xa hoặc máy tính để bàn của bạn, hãy nhập lệnh sau:

$ mysql -u webadmin –h 173.234.21.12 –p

Trên windows, chạy chương trình dòng lệnh MySQL và đăng nhập với tư cách quản trị viên bằng cách nhập lệnh sau từ thư mục gốc MySQL (ví dụ:Program Files \ MySQL \ MySQL Server 5.5 \ bin):

C:\Program Files\MySQL\MySQL Server 5.5\bin>mysql -u webadmin –h 173.234.21.12 –p

Ở đâu,

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL vào quyền truy cập outfile bị từ chối - nhưng người dùng của tôi có TẤT CẢ quyền truy cập .. và thư mục là CHMOD 777

  2. TRIGGER khiến INSERT không thành công? Có thể được?

  3. DO và DONT cho chỉ mục

  4. Đối chiếu phân biệt chữ hoa chữ thường trong MySQL

  5. Cách nhanh nhất để tìm khoảng cách giữa hai điểm vĩ độ / vĩ độ