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:
Đă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 themysql_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.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
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ốnmysql> 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';
mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
Tuyên bố này cấp quyền
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.mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
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ụ,
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.mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
Chúng tôi không khuyên bạn nên cấp quyền
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ềnmysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
8.mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
Để 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
9. Ví dụ: trong bước trước, bạn có thể sử dụngmysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
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.# 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> _
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
2 cho số cổ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> _
© 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