Hướng dẫn how do i connect to a mysql database from a different server? - làm cách nào để kết nối với cơ sở dữ liệu mysql từ một máy chủ khác?

Cập nhật lần cuối: & NBSP; 2018-12-19

Được ủy quyền bởi: & nbsp; hỗ trợ Rackspace

Bài viết này giải thích cách thiết lập người dùng trên máy chủ MySQL® của bạn để kết nối với cơ sở dữ liệu MySQL từ xa.

Lưu ý: Bài viết chỉ cho bạn cách kết nối với phiên bản MySQL cục bộ với máy chủ. Đối với các bước tương ứng cho cơ sở dữ liệu đám mây, hãy xem Kết nối với thể hiện cơ sở dữ liệu đám mây.: The article shows you how to connect to a MySQL instance local to a server. For the corresponding steps for Cloud Databases, see Connect to a Cloud Database instance.

Để thực hiện các bước này, bạn phải có quyền truy cập máy chủ cục bộ để đăng nhập với tư cách là người dùng MySQL root.

Lấy địa chỉ IP của bạn

Bạn cần biết địa chỉ Giao thức Internet [IP] của máy tính mà bạn đang kết nối. Bạn có thể truy xuất thông tin này bằng cách truy cập một trong các trang web sau:

  • //icanhazip.com
  • //www.whatismyip.com

Cấp phép truy cập

Thực hiện các bước sau để cấp quyền truy cập cho người dùng từ máy chủ từ xa:

  1. Đăng nhập vào máy chủ MySQL của bạn cục bộ với tư cách là người dùng root bằng cách sử dụng lệnh sau:

     # mysql -u root -p
    

    Bạn được nhắc về mật khẩu gốc MySQL của mình.

    Lưu ý: Nếu bạn có quyền truy cập vào MySQL mà không cần nhập mật khẩu, hãy xem xét chạy tập lệnh mysql_secure_installation, đặt mật khẩu gốc MySQL và cập nhật các cài đặt khác để tăng bảo mật. Dịch vụ được quản lý Microsoft SQL Server có thể giúp bạn quản lý các phiên bản SQL Server của mình.: If you gain access to MySQL without entering a password, consider running the mysql_secure_installation script, which sets a MySQL root password and updates other settings to increase security. Microsoft SQL Server Managed Services can help you manage your SQL server instances.

  2. Sử dụng lệnh GRANT ở định dạng sau để cho phép truy cập cho người dùng từ xa. Đảm bảo rằng bạn thay đổi

     mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
    
    0 thành địa chỉ IP mà bạn đã nhận được trước đó và
     mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
    
    1 thành mật khẩu mà bạn muốn
     mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
    
    2 sử dụng:

     mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
    

    Tuyên bố này cấp quyền

     mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
    
    3 cho người dùng mới khi người dùng kết nối từ địa chỉ IP được chỉ định bằng cách sử dụng mật khẩu được chỉ định.

Kiểm tra kết nối từ xa

Để kiểm tra kết nối từ xa, hãy truy cập máy chủ MySQL từ máy chủ Linux® khác. Ví dụ sau sử dụng

 mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
4 làm địa chỉ IP của máy chủ MySQL:

# mysql -u fooUser -p -h 44.55.66.77
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.0.45 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> _

Cân nhắc

Khi bạn thiết lập người dùng từ xa, hãy xem xét các thông tin sau:

  • Người dùng cục bộ khác với người dùng từ xa. Ví dụ,

     mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
    
    5 không giống như
     mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
    
    6. Nếu bạn muốn cả hai người dùng có cùng quyền, bạn cần sao chép các quyền.

  • Chúng tôi không khuyên bạn nên cấp quyền

     mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
    
    3. Đối với người dùng tiêu chuẩn, chúng tôi khuyên bạn nên cấp quyền
     mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
    
    8.

  • Để chỉ cấp quyền truy cập vào một bảng cụ thể, bạn có thể sử dụng lệnh

     mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
    
    9. Ví dụ: trong bước trước, bạn có thể sử dụng
    # mysql -u fooUser -p -h 44.55.66.77
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 17
    Server version: 5.0.45 Source distribution
    
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
    
    mysql> _
    
    0 thay vì
    # mysql -u fooUser -p -h 44.55.66.77
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 17
    Server version: 5.0.45 Source distribution
    
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
    
    mysql> _
    
    1.

  • Nếu bạn sử dụng IPTables, bạn cần thêm mục nhập vào quy tắc tường lửa cho giao thức điều khiển truyền [TCP] Cổng 3306. Bạn có thể sử dụng tên

    # mysql -u fooUser -p -h 44.55.66.77
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 17
    Server version: 5.0.45 Source distribution
    
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
    
    mysql> _
    
    2 cho số cổng.

© 2020 Rackspace US, Inc.

Ngoại trừ nơi được ghi chú khác, nội dung trên trang web này được cấp phép theo một giấy phép Creative Commons Attribution-Noncommial-Noderivs 3.0

Xem các thông tin và từ chối bằng giấy phép

Tôi có thể có các tập lệnh PHP của mình trên máy chủ A và kết nối với cơ sở dữ liệu MySQL trên máy chủ B không?

Nếu có, nó sẽ được thực hiện như thế nào? Cảm ơn trước

Đã hỏi ngày 19 tháng 11 năm 2009 lúc 14:08Nov 19, 2009 at 14:08

Ankit Sachanankit SachanAnkit Sachan

7.46815 Huy hiệu vàng63 Huy hiệu bạc96 Huy hiệu Đồng15 gold badges63 silver badges96 bronze badges

đơn giản của nó, tất cả các kỹ thuật trên đó khá phức tạp

Giả sử bạn có cơ sở dữ liệu trên máy chủ B và trang web trên máy chủ A [giả sử nó có IP 192.234.12.1]

Trên danh sách trắng cpanel, IP của máy chủ B

và tạo một người dùng mới có đủ các đặc quyền trong cơ sở dữ liệu [giả sử người dùng này là kiểm tra]

Sau đó tạo người dùng này dưới dạng

Đã trả lời ngày 20 tháng 11 năm 2009 lúc 16:54Nov 20, 2009 at 16:54

Ankit Sachanankit SachanAnkit Sachan

7.46815 Huy hiệu vàng63 Huy hiệu bạc96 Huy hiệu Đồng15 gold badges63 silver badges96 bronze badges

1

Yes.

đơn giản của nó, tất cả các kỹ thuật trên đó khá phức tạp

Giả sử bạn có cơ sở dữ liệu trên máy chủ B và trang web trên máy chủ A [giả sử nó có IP 192.234.12.1]

Trên danh sách trắng cpanel, IP của máy chủ BNov 19, 2009 at 14:10

và tạo một người dùng mới có đủ các đặc quyền trong cơ sở dữ liệu [giả sử người dùng này là kiểm tra]Francisco Aquino

Sau đó tạo người dùng này dưới dạng1 gold badge30 silver badges37 bronze badges

Đã trả lời ngày 20 tháng 11 năm 2009 lúc 16:54

Giống như cách bạn truy cập localhost trên cùng một máy chủ, bạn thay đổi máy chủ cơ sở dữ liệu thành công cụ bên ngoài. Đây là vấn đề cấu hình hơn, bạn cần cấp quyền truy cập từ xa cơ sở dữ liệu của mình vào MySQL, bạn cũng cần đảm bảo tường lửa của bạn cho phép kết nối trên cổng MySQL.

Ví dụ về Debian: //www.debianhelp.co.uk/remotemysql.htm

Trong trang chủ của bảng điều khiển, hãy đi phần cơ sở dữ liệu và nhấp vào tùy chọn MySQL từ xa.

Sau đó thêm địa chỉ IP của máy chủ A và nhấp vào Thêm máy chủ.

Bây giờ bạn có thể truy cập vào cơ sở dữ liệu trong máy chủ B trong khi các tập lệnh của bạn đang chạy trong máy chủ A. Hãy nhớ rằng kết quả được định sẵn sẽ chậm vì nó nhận được dữ liệu từ cơ sở dữ liệu được đặt trên một máy chủ khác.

Chào mừng bạn

Đã trả lời ngày 27 tháng 4 năm 2017 lúc 17:21Apr 27, 2017 at 17:21

1

Chỉ là không tên máy chủ của hộp khác cho kết nối. Chi tiết phụ thuộc vào phần mở rộng bạn đang sử dụng:

$mysql = mysql_connect[$host, $user, $pass];
$mysqli = new mysqli[$host, $user, $password, $schema];
$pdo = new PDO["mysql:host=$host", $user, $pass];

Đảm bảo rằng người dùng được phép truy cập bởi máy chủ MySQL [tạo người dùng] và kiểm tra xem không có tường lửa nào theo cách này.

Đã trả lời ngày 19 tháng 11 năm 2009 lúc 14:13Nov 19, 2009 at 14:13

Johannesjohannesjohannes

15.6K3 Huy hiệu vàng42 Huy hiệu bạc57 Huy hiệu đồng3 gold badges42 silver badges57 bronze badges

Đó là tất cả những gì bạn cần.

[Ngay cả bạn có thể có các tập lệnh của mình trên máy chủ A, máy chủ web của bạn trên máy chủ B và cơ sở dữ liệu của bạn trên máy chủ C ...]

Đã trả lời ngày 19 tháng 11 năm 2009 lúc 14:11Nov 19, 2009 at 14:11

PetermmmpetermmmPeterMmm

23.7K13 Huy hiệu vàng71 Huy hiệu bạc109 Huy hiệu đồng13 gold badges71 silver badges109 bronze badges

Tôi đã có những thách thức tương tự nhưng đây là những gì tôi làm việc: để kết nối với máy chủ B từ máy chủ A, trước tiên, bạn cần cho phép máy chủ truy cập MySQL từ xa trong cPanel [máy chủ B], home -> cơ sở dữ liệu -> MySQL từ xa và cũng danh sách trắng IP trong tường lửa [đó là địa chỉ IP của máy chủ B]. Sau đó, kết nối DB PHP sau đây sẽ hoạt động.

$db_connect =  mysqli_connect["serverB.com", "dbuser", "dbpassword", "dbname"];
// Evaluate the connection
if [mysqli_connect_errno[]] {
    echo mysqli_connect_error[];
    exit[];
}else{
   //successful connection
    echo "Yes, successful";
}

Đã trả lời ngày 22 tháng 8 năm 2016 lúc 14:54Aug 22, 2016 at 14:54

Harrison Oharrison oHarrison O

97113 Huy hiệu bạc19 Huy hiệu đồng13 silver badges19 bronze badges

Đây là một giải pháp hoàn hảo để kết nối cơ sở dữ liệu khác từ các máy chủ khác.

$dbserverName = "191.238.0.2";    
$dbUsername = "lauranco_L2L";
$dbPassword = "SL92TIW5T96L";
$dbName = "lauranco_siteBits";

Jon

9072 Huy hiệu vàng10 Huy hiệu bạc28 Huy hiệu đồng2 gold badges10 silver badges28 bronze badges

Đã trả lời ngày 19 tháng 7 năm 2018 lúc 8:04Jul 19, 2018 at 8:04

Chủ đề cũ tốt.

Tuy nhiên - trong tất cả các câu trả lời xuất hiện ở đây, không có gì giải quyết về bảo mật.security.

Việc mở cổng MySQL ở bên ngoài máy chủ là điều rất không an toàn.

Tùy chọn an toàn nhất là giữ cho cổng MySQL mở cho một và duy nhất localhost trong tất cả các máy chủ.

Và có một PHP khác chạy bên trong máy chủ thứ hai, làm cho nó tạo ra đầu ra mong muốn và cung cấp tương tự cho PHP của bạn [chạy trong máy chủ đầu tiên].

Đã trả lời ngày 24 tháng 12 năm 2020 lúc 5:21Dec 24, 2020 at 5:21

6

Làm cách nào để kết nối với cơ sở dữ liệu MySQL bằng địa chỉ IP?

Chọn các kết nối từ menu điều hướng SQL. Trong phần mạng được ủy quyền, nhấp vào Thêm mạng và nhập địa chỉ IP của máy nơi máy khách được cài đặt. Lưu ý: Địa chỉ IP của phiên bản và địa chỉ IP của máy khách MySQL mà bạn ủy quyền phải là cùng một phiên bản IP: IPv4 hoặc IPv6. Nhấp vào xong. In the Authorized networks section, click Add network and enter the IP address of the machine where the client is installed. Note: The IP address of the instance and the mysql client IP address you authorize must be the same IP version: either IPv4 or IPv6. Click Done.

Công cụ nào được sử dụng để kết nối với máy chủ MySQL từ xa?

Sử dụng MySQL Workbench để truy cập cơ sở dữ liệu MySQL từ xa của bạn thông qua đường hầm SSH là một cách đơn giản và an toàn để quản lý cơ sở dữ liệu của bạn từ sự thoải mái của máy tính cục bộ của bạn.MySQL Workbench to access your remote MySQL database through an SSH tunnel is a simple and secure way to manage your databases from the comfort of your local computer.

Làm cách nào để truy cập cơ sở dữ liệu MySQL trực tuyến?

Để truy cập cơ sở dữ liệu MySQL của bạn, vui lòng làm theo các bước sau:..
Đăng nhập vào máy chủ web Linux của bạn thông qua Shell Secure ..
Mở chương trình máy khách MySQL trên máy chủ trong thư mục /usr /bin ..
Nhập vào cú pháp sau để truy cập cơ sở dữ liệu của bạn: $ mysql -h {hostName} -u username -p {databasename} Mật khẩu: {mật khẩu của bạn}.

Làm cách nào để tham gia một cơ sở dữ liệu hiện có trong MySQL?

Để truy cập cơ sở dữ liệu cụ thể, hãy nhập lệnh sau tại lời nhắc MySQL>, thay thế DBName bằng tên của cơ sở dữ liệu mà bạn muốn truy cập: Sao chép sử dụng dbname;Hãy chắc chắn rằng bạn không quên dấu chấm phẩy ở cuối tuyên bố.Sau khi bạn truy cập cơ sở dữ liệu, bạn có thể chạy các truy vấn SQL, danh sách các bảng, v.v.Copy use dbname; Make sure you do not forget the semicolon at the end of the statement. After you access a database, you can run SQL queries, list tables, and so on.

Bài Viết Liên Quan

Chủ Đề