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
mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
2.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
2 bằng cách sử dụng lệnh sau:mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
# 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
4, đặ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> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
4 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.mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
Sử dụng lệnh
5 ở đị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 đổimysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
6 sang đị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';
7 sang mật khẩu mà bạn muốnmysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
8 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 các quyền
9 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 -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 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ụ,
1 không giống như# 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. 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 -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> _
Chúng tôi không khuyên bạn nên cấp quyền
9. Đố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';
4.# 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> _
Để 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
5. 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> _
6 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> _
7.# 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
8 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
4.2.4 & nbsp; Kết nối với máy chủ MySQL bằng cách sử dụng các tùy chọn lệnh
Phần này mô tả việc sử dụng các tùy chọn dòng lệnh để chỉ định cách thiết lập các kết nối đến máy chủ MySQL, cho các máy khách như MySQL hoặc MySQLDump. Để biết thông tin về việc thiết lập các kết nối bằng các chuỗi kết nối giống như URI hoặc các cặp giá trị khóa, cho các máy khách như MySQL Shell, xem Phần & NBSP; 4.2.5, Kết nối với máy chủ bằng các chuỗi giống như URI hoặc các cặp giá trị khóa. Để biết thêm thông tin nếu bạn không thể kết nối, hãy xem Phần & NBSP; 6.2.22, các vấn đề khắc phục sự cố kết nối với MySQL.mysql or mysqldump. For information on establishing connections using URI-like connection strings or key-value pairs, for clients such as MySQL Shell, see Section 4.2.5, “Connecting to the Server Using URI-Like Strings or Key-Value Pairs”. For additional information if you are unable to connect, see Section 6.2.22, “Troubleshooting Problems Connecting to MySQL”.
Để chương trình máy khách kết nối với máy chủ MySQL, nó phải sử dụng các tham số kết nối phù hợp, chẳng hạn như tên của máy chủ nơi máy chủ đang chạy và tên người dùng và mật khẩu của tài khoản MySQL của bạn. Mỗi tham số kết nối có giá trị mặc định, nhưng bạn có thể ghi đè các giá trị mặc định khi cần thiết bằng cách sử dụng tùy chọn chương trình được chỉ định trên dòng lệnh hoặc trong tệp tùy chọn.
Các ví dụ ở đây sử dụng chương trình máy khách MySQL, nhưng các nguyên tắc áp dụng cho các máy khách khác như MySQLDump, MySqladmin hoặc MySQLShow.mysql client program, but the principles apply to other clients such as mysqldump, mysqladmin, or mysqlshow.
Lệnh này gọi MySQL mà không chỉ định bất kỳ tham số kết nối rõ ràng nào:mysql without specifying any explicit connection parameters:
mysql
Vì không có tùy chọn tham số, các giá trị mặc định áp dụng:
Tên máy chủ mặc định là
9. Trên Unix, điều này có một ý nghĩa đặc biệt, như được mô tả sau.# 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> _
Tên người dùng mặc định là
0 trên Windows hoặc tên đăng nhập Unix của bạn trên UNIX.mysql
Không có mật khẩu nào được gửi vì cả
1 vàmysql
2 đều không được cung cấp.mysql
Đối với MySQL, đối số không lựa chọn đầu tiên được lấy làm tên của cơ sở dữ liệu mặc định. Vì không có đối số như vậy, MySQL chọn không có cơ sở dữ liệu mặc định.mysql, the first nonoption argument is taken as the name of the default database. Because there is no such argument, mysql selects no default database.
Để chỉ định tên máy chủ và tên người dùng một cách rõ ràng, cũng như mật khẩu, cung cấp các tùy chọn phù hợp trên dòng lệnh. Để chọn cơ sở dữ liệu mặc định, hãy thêm đối số tên cơ sở dữ liệu. Ví dụ:
mysql --host=localhost --user=myname --password=password mydb
mysql -h localhost -u myname -ppassword mydb
Đối với các tùy chọn mật khẩu, giá trị mật khẩu là tùy chọn:
Nếu bạn sử dụng tùy chọn
1 hoặcmysql
2 và chỉ định giá trị mật khẩu, không có khoảng trống giữamysql
5 hoặcmysql
2 và mật khẩu theo nó.no space betweenmysql
5 ormysql
2 and the password following it.mysql
Nếu bạn sử dụng
1 hoặcmysql
2 nhưng không chỉ định giá trị mật khẩu, chương trình máy khách sẽ nhắc bạn nhập mật khẩu. Mật khẩu không được hiển thị khi bạn nhập nó. Điều này an toàn hơn so với việc cung cấp mật khẩu trên dòng lệnh, có thể cho phép người dùng khác trên hệ thống của bạn xem dòng mật khẩu bằng cách thực thi lệnh như PS. Xem Phần & NBSP; 6.1.2.1, Hướng dẫn của người dùng cuối về bảo mật mật khẩu.ps. See Section 6.1.2.1, “End-User Guidelines for Password Security”.mysql
Để xác định rõ ràng rằng không có mật khẩu và chương trình máy khách không nên nhắc cho một người, hãy sử dụng tùy chọn
9.mysql
Như vừa đề cập, bao gồm giá trị mật khẩu trên dòng lệnh là rủi ro bảo mật. Để tránh rủi ro này, hãy chỉ định tùy chọn
mysql
1 hoặc mysql
2 mà không có bất kỳ giá trị mật khẩu nào sau đây:mysql --host=localhost --user=myname --password mydb
mysql -h localhost -u myname -p mydb
Khi tùy chọn
mysql
1 hoặc mysql
2 được đưa ra mà không có giá trị mật khẩu, chương trình máy khách sẽ in dấu nhắc và chờ bạn nhập mật khẩu. .not interpreted as a password because it is separated from the preceding password option by a space.] Trên một số hệ thống, thói quen thư viện mà MySQL sử dụng để nhắc mật khẩu tự động giới hạn mật khẩu thành tám ký tự. Hạn chế đó là một thuộc tính của thư viện hệ thống, không phải MySQL. Trong nội bộ, MySQL không có bất kỳ giới hạn nào về độ dài của mật khẩu. Để làm việc xung quanh giới hạn trên các hệ thống bị ảnh hưởng bởi nó, chỉ định mật khẩu của bạn trong một tệp tùy chọn [xem Phần & NBSP; 4.2.2.2, sử dụng các tệp tùy chọn]. Một cách giải quyết khác là thay đổi mật khẩu MySQL của bạn thành một giá trị có tám ký tự hoặc ít hơn, nhưng điều đó có bất lợi là mật khẩu ngắn hơn có xu hướng kém an toàn hơn.
Các chương trình khách hàng xác định loại kết nối nào để thực hiện như sau:
Nếu máy chủ không được chỉ định hoặc là
9, kết nối với máy chủ cục bộ sẽ xảy ra:# 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> _
Trên Windows, máy khách kết nối bằng bộ nhớ chia sẻ, nếu máy chủ được bắt đầu với biến hệ thống
6 được bật để hỗ trợ các kết nối bộ nhớ chia sẻ.mysql --host=localhost --user=myname --password=password mydb mysql -h localhost -u myname -ppassword mydb
Trên UNIX, các chương trình MySQL xử lý tên máy chủ
9 đặc biệt, theo cách có khả năng khác với những gì bạn mong đợi so với các chương trình dựa trên mạng khác: máy khách kết nối bằng cách sử dụng tệp ổ cắm UNIX. Tùy chọ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> _
8 hoặc biến môi trườngmysql --host=localhost --user=myname --password=password mydb mysql -h localhost -u myname -ppassword mydb
9 có thể được sử dụng để chỉ định tên ổ cắm.mysql --host=localhost --user=myname --password=password mydb mysql -h localhost -u myname -ppassword mydb
Trên Windows, nếu
0 làmysql --host=localhost --user=myname --password mydb mysql -h localhost -u myname -p mydb
1 [khoảng thời gian] hoặc TCP/IP không được bật vàmysql --host=localhost --user=myname --password mydb mysql -h localhost -u myname -p mydb
8 không được chỉ định hoặc máy chủ trống, máy khách kết nối bằng cách sử dụng một đường ống được đặt tên, nếu máy chủ được bắt đầu với biến hệ thốngmysql --host=localhost --user=myname --password=password mydb mysql -h localhost -u myname -ppassword mydb
3 được bật để hỗ trợ Kết nối đường ống được đặt tên. Nếu các kết nối-PIPE không được hỗ trợ hoặc nếu người dùng tạo kết nối không phải là thành viên của nhóm Windows được chỉ định bởi biến hệ thốngmysql --host=localhost --user=myname --password mydb mysql -h localhost -u myname -p mydb
4, xảy ra lỗi.mysql --host=localhost --user=myname --password mydb mysql -h localhost -u myname -p mydb
Mặt khác, kết nối sử dụng TCP/IP.
Tùy chọn
mysql --host=localhost --user=myname --password mydb
mysql -h localhost -u myname -p mydb
5 cho phép bạn sử dụng một giao thức vận chuyển cụ thể ngay cả khi các tùy chọn khác thường dẫn đến việc sử dụng một giao thức khác. Đó là, mysql --host=localhost --user=myname --password mydb
mysql -h localhost -u myname -p mydb
5 chỉ định giao thức vận chuyển một cách rõ ràng và ghi đè các quy tắc trước đó, ngay cả đối với # 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> _
9.Chỉ các tùy chọn kết nối có liên quan đến giao thức vận chuyển được chọn mới được sử dụng hoặc kiểm tra. Các tùy chọn kết nối khác bị bỏ qua. Ví dụ: với
mysql --host=localhost --user=myname --password mydb
mysql -h localhost -u myname -p mydb
8 trên UNIX, máy khách cố gắng kết nối với máy chủ cục bộ bằng tệp ổ cắm UNIX, ngay cả khi tùy chọn mysql --host=localhost --user=myname --password mydb
mysql -h localhost -u myname -p mydb
9 hoặc mysql --host=127.0.0.1
mysql --protocol=TCP
0 được đưa ra để chỉ định số cổng TCP/IP.Để đảm bảo rằng máy khách tạo kết nối TCP/IP đến máy chủ cục bộ, hãy sử dụng
mysql --host=127.0.0.1
mysql --protocol=TCP
1 hoặc mysql --host=127.0.0.1
mysql --protocol=TCP
2 để chỉ định giá trị tên máy chủ là mysql --host=127.0.0.1
mysql --protocol=TCP
3 [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> _
9] hoặc địa chỉ IP hoặc tên của máy chủ cục bộ. Bạn cũng có thể chỉ định giao thức vận chuyển một cách rõ ràng, ngay cả đối với # 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> _
9, bằng cách sử dụng tùy chọn mysql --host=127.0.0.1
mysql --protocol=TCP
6. Ví dụ:mysql --host=127.0.0.1
mysql --protocol=TCP
Nếu máy chủ được cấu hình để chấp nhận kết nối IPv6, máy khách có thể kết nối với máy chủ cục bộ qua IPv6 bằng
mysql --host=127.0.0.1
mysql --protocol=TCP
7. Xem Phần & NBSP; 5.1.13, hỗ trợ IP IPv6.Trên Windows, để buộc máy khách MySQL sử dụng kết nối PIPE được đặt tên, chỉ định tùy chọn
mysql --host=127.0.0.1
mysql --protocol=TCP
8 hoặc mysql --host=127.0.0.1
mysql --protocol=TCP
9 hoặc chỉ định mysql --host=localhost --user=myname --password mydb
mysql -h localhost -u myname -p mydb
1 [khoảng thời gian] làm tên máy chủ. Nếu máy chủ không được khởi động với biến hệ thống mysql --host=localhost --user=myname --password mydb
mysql -h localhost -u myname -p mydb
3 được kích hoạt để hỗ trợ các kết nối-PIPE được đặt tên hoặc nếu người dùng thực hiện kết nối không phải là thành viên của nhóm Windows được chỉ định bởi biến hệ thống mysql --host=localhost --user=myname --password mydb
mysql -h localhost -u myname -p mydb
4, xảy ra lỗi. Sử dụng tùy chọn mysql --host=localhost --user=myname --password=password mydb
mysql -h localhost -u myname -ppassword mydb
8 để chỉ định tên của đường ống nếu bạn không muốn sử dụng tên đường ống mặc định.Kết nối với máy chủ từ xa Sử dụng TCP/IP. Lệnh này kết nối với máy chủ đang chạy trên
mysql --host=remote.example.com
4 bằng số cổng mặc định [3306]:mysql --host=remote.example.com
Để chỉ định số cổng một cách rõ ràng, hãy sử dụng tùy chọn
mysql --host=localhost --user=myname --password mydb
mysql -h localhost -u myname -p mydb
9 hoặc mysql --host=127.0.0.1
mysql --protocol=TCP
0:mysql --host=remote.example.com --port=13306
Bạn cũng có thể chỉ định số cổng cho các kết nối đến máy chủ cục bộ. Tuy nhiên, như đã chỉ ra trước đây, các kết nối với
# 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> _
9 trên UNIX Sử dụng tệp ổ cắm theo mặc định, vì vậy trừ khi bạn buộc kết nối TCP/IP như được mô tả trước đây, bất kỳ tùy chọn nào chỉ định số cổng đều bị bỏ qua.Đối với lệnh này, chương trình sử dụng tệp ổ cắm trên UNIX và tùy chọn
mysql --host=localhost --user=myname --password mydb
mysql -h localhost -u myname -p mydb
9 bị bỏ qua:mysql --port=13306 --host=localhost
Để khiến số cổng được sử dụng, buộc kết nối TCP/IP. Ví dụ: gọi chương trình theo một trong những cách này:
mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
0Để biết thêm thông tin về các tùy chọn kiểm soát cách các chương trình khách hàng thiết lập kết nối với máy chủ, hãy xem Phần & NBSP; 4.2.3, Tùy chọn lệnh để kết nối với máy chủ.
Có thể chỉ định các tham số kết nối mà không cần nhập chúng vào dòng lệnh mỗi khi bạn gọi chương trình máy khách:
Chỉ định các tham số kết nối trong phần
9 của tệp tùy chọn. Phần có liên quan của tệp có thể trông như thế này:mysql --host=remote.example.com
1mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
Để biết thêm thông tin, xem Phần & NBSP; 4.2.2.2, Sử dụng các tệp tùy chọn.
Một số tham số kết nối có thể được chỉ định bằng các biến môi trường. Ví dụ:
Để chỉ định máy chủ cho MySQL, hãy sử dụng
0.mysql, usemysql --host=remote.example.com --port=13306
0.mysql --host=remote.example.com --port=13306
Trên Windows, để chỉ định tên người dùng MySQL, hãy sử dụng
1.mysql --host=remote.example.com --port=13306
Để biết danh sách các biến môi trường được hỗ trợ, hãy xem Phần & NBSP; 4.9, Biến môi trường.