How to Install MySQL server on Ubuntu 18.04/20.04
Mục lục:
- Cấu hình máy chủ MySQL
- Cấp quyền truy cập cho người dùng từ máy từ xa
- Cấu hình tường lửa
- Iptables
- UFW
- Tường lửa
- Xác minh thay đổi
- Phần kết luận
Theo mặc định, máy chủ MySQL chỉ nghe các kết nối từ localhost, có nghĩa là nó chỉ có thể được truy cập bởi các ứng dụng chạy trên cùng một máy chủ.
Tuy nhiên, trong một số tình huống, cần phải truy cập máy chủ MySQL từ vị trí từ xa. Ví dụ: khi bạn muốn kết nối với máy chủ MySQL từ xa từ hệ thống cục bộ của bạn hoặc khi sử dụng triển khai đa máy chủ nơi ứng dụng đang chạy trên một máy khác từ máy chủ cơ sở dữ liệu. Một tùy chọn sẽ là truy cập máy chủ MySQL thông qua SSH Tunnel và một cách khác là cấu hình máy chủ MySQL để chấp nhận các kết nối từ xa.
Trong hướng dẫn này, chúng tôi sẽ thực hiện các bước cần thiết để cho phép kết nối từ xa đến máy chủ MySQL. Các hướng dẫn tương tự áp dụng cho MariaDB.
Cấu hình máy chủ MySQL
Bước đầu tiên là đặt máy chủ MySQL nghe trên một địa chỉ IP cụ thể hoặc tất cả các địa chỉ IP trên máy.
Nếu máy chủ MySQL và máy khách có thể giao tiếp với nhau qua mạng riêng, thì tùy chọn tốt nhất là đặt máy chủ MySQL chỉ nghe trên IP riêng. Mặt khác, nếu bạn muốn kết nối với máy chủ qua mạng công cộng, hãy đặt máy chủ MySQL để nghe trên tất cả các địa chỉ IP trên máy.
Để làm như vậy, bạn cần chỉnh sửa tệp cấu hình MySQL và thêm hoặc thay đổi giá trị của tùy chọn
bind-address
. Bạn có thể đặt một địa chỉ IP và dải IP duy nhất. Nếu địa chỉ là
0.0.0.0
, máy chủ MySQL chấp nhận kết nối trên tất cả các giao diện IPv4 lưu trữ. Nếu bạn đã cấu hình IPv6 trên hệ thống của mình, thì thay vì
0.0.0.0
, hãy sử dụng
::
.
Vị trí của tệp cấu hình MySQL khác nhau tùy thuộc vào phân phối. Trong Ubuntu và Debian, tệp được đặt tại
/etc/mysql/mysql.conf.d/mysqld.cnf
, trong khi trong các bản phân phối dựa trên Red Hat như CentOS, tệp được đặt tại
/etc/my.cnf
.
Mở tệp bằng trình soạn thảo văn bản của bạn:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Tìm kiếm một dòng bắt đầu bằng
bind-address
và đặt giá trị của nó thành địa chỉ IP mà máy chủ MySQL nên nghe.
Theo mặc định, giá trị được đặt thành
127.0.0.1
(chỉ nghe trong localhost).
Trong ví dụ này, chúng tôi sẽ đặt máy chủ MySQL lắng nghe trên tất cả các giao diện IPv4 bằng cách thay đổi giá trị thành
0.0.0.0
bind-address = 0.0.0.0 # skip-networking
Nếu có một dòng chứa
skip-networking
, hãy xóa nó hoặc nhận xét nó bằng cách thêm
#
ở đầu dòng.
Trong MySQL 8.0 trở lên,
bind-address
thị
bind-address
có thể không xuất hiện. Trong trường hợp này, thêm nó dưới
phần.
Sau khi hoàn tất, hãy khởi động lại dịch vụ MySQL để các thay đổi có hiệu lực. Chỉ người dùng root hoặc người dùng có quyền sudo mới có thể khởi động lại dịch vụ.
Để khởi động lại dịch vụ MySQL trên Debian hoặc Ubuntu, gõ:
sudo systemctl restart mysql
Trên các bản phân phối dựa trên RedHat như CentOS để khởi động lại dịch vụ chạy:
Cấp quyền truy cập cho người dùng từ máy từ xa
Bước tiếp theo là cho phép truy cập vào cơ sở dữ liệu cho người dùng từ xa.
Đăng nhập vào máy chủ MySQL với tư cách là người dùng root bằng cách gõ:
sudo mysql
mysql -uroot -p
Từ bên trong shell MySQL, sử dụng câu lệnh
GRANT
để cấp quyền truy cập cho người dùng từ xa.
GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';
Ở đâu:
-
database_name
là tên của cơ sở dữ liệu mà người dùng sẽ kết nối.user_name
là tên od người dùng MySQL.ip_address
là địa chỉ IP mà người dùng sẽ kết nối. Sử dụng%
để cho phép người dùng kết nối từ bất kỳ địa chỉ IP nào.user_password
là mật khẩu người dùng.
Ví dụ: để cấp quyền truy cập vào
dbname
cơ sở dữ liệu cho người dùng có tên
foo
bằng mật khẩu
my_passwd
từ máy khách có IP
10.8.0.5
, bạn sẽ chạy:
GRANT ALL ON dbname.* TO foo@'10.8.0.5' IDENTIFIED BY 'my_passwd';
Cấu hình tường lửa
Bước cuối cùng là cấu hình tường lửa của bạn để cho phép lưu lượng truy cập trên cổng
3306
(cổng mặc định của MySQL) từ các máy từ xa.
Iptables
sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
Cho phép truy cập từ một địa chỉ IP cụ thể:
sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT
UFW
UFW là công cụ tường lửa mặc định trong Ubuntu. Để cho phép truy cập từ bất kỳ địa chỉ IP nào trên Internet (rất không an toàn) hãy chạy:
sudo ufw allow 3306/tcp
Cho phép truy cập từ một địa chỉ IP cụ thể:
sudo ufw allow from 10.8.0.5 to any port 3306
Tường lửa
FirewallD là công cụ quản lý tường lửa mặc định trong CentOS. Để cho phép truy cập từ bất kỳ địa chỉ IP nào trên Internet (rất không an toàn), hãy gõ:
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
Để cho phép truy cập từ một địa chỉ IP cụ thể trên một cổng cụ thể, bạn có thể tạo vùng FirewallD mới hoặc sử dụng quy tắc phong phú. Tạo một vùng mới có tên
mysqlzone
:
sudo firewall-cmd --new-zone=mysqlzone --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=mysqlzone --add-source=10.8.0.5/32
sudo firewall-cmd --permanent --zone=mysqlzone --add-port=3306/tcp
sudo firewall-cmd --reload
Xác minh thay đổi
Để xác minh rằng người dùng từ xa có thể kết nối với máy chủ MySQL chạy lệnh sau:
mysql -u user_name -h mysql_server_ip -p
Trong đó
user_name
là tên của người dùng mà bạn đã cấp quyền truy cập và
mysql_server_ip
là địa chỉ IP của máy chủ nơi máy chủ MySQL chạy.
Nếu mọi thứ được thiết lập chính xác, bạn sẽ có thể đăng nhập vào máy chủ MySQL từ xa.
ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.5' (111)"
Lỗi bên dưới cho thấy người dùng mà bạn đang cố đăng nhập không có quyền truy cập vào máy chủ MySQL từ xa.
"ERROR 1130 (HY000): Host '10.8.0.5' is not allowed to connect to this MySQL server"
Phần kết luận
Theo mặc định, MySQL, máy chủ cơ sở dữ liệu nguồn mở phổ biến nhất, chỉ lắng nghe các kết nối đến trên localhost.
Để cho phép kết nối từ xa đến máy chủ MySQL, bạn cần thực hiện các bước sau:
- Định cấu hình máy chủ MySQL để nghe trên tất cả hoặc một giao diện cụ thể. Truy cập vào người dùng từ xa. Mở cổng MySQL trong tường lửa của bạn.
Không khí, mật độ máy chủ cao và ngăn chặn làm mát, Oracle hy vọng sẽ đạt được hiệu quả năng lượng hơn nhiều so với trung tâm dữ liệu chính của nó ở Austin, Texas, chủ nhật cho biết. Độ ẩm thấp của Utah sẽ giúp, nhưng các hệ thống làm mát sẽ có thể tận dụng không khí bên ngoài vào những ngày nóng tới 85 độ F (29 độ C), ông nói. Bên trong, nhiệt sẽ được đẩy phía sau và phía trên các giá đỡ của máy chủ, tập trung làm mát trên thiết bị của chính nó.
Các trung tâm sẽ được chia thành bốn "supercells, "mỗi trong số đó có thể được chia thành" subcells "có thể được quản lý độc lập, Chủ nhật nói. Mạng và thiết bị phân phối điện sẽ tách biệt khỏi các siêu mạng vì vậy điện toán có thể tập trung nhiều hơn trong trung tâm dữ liệu. Mỗi siêu tế bào sẽ chiếm khoảng 30.000 feet vuông nhưng sẽ có khả năng tính toán tương tự như trung tâm Austin 88.000 foot vuông, chủ nhật nói. Mật độ công suất sẽ cao gấp 3 lần, khoảng 300 watt mỗi foot vuông (0,9 mét vuôn
Lỗ hổng trong SSL hoặc Lớp cổng bảo mật được sử dụng để bảo vệ lưu lượng truy cập web cho ngân hàng trực tuyến, mua sắm và bất kỳ kết nối https nào khác, cho phép kẻ tấn công đột nhập vào bất kỳ kết nối an toàn về mặt lý thuyết nào và thêm các lệnh độc hại. truy cập lưu lượng mạng cụ thể giữa một máy khách, chẳng hạn như trình duyệt Web, và Web hoặc máy chủ khác. Điều đó có nghĩa là hầu hết người dùng gia đình có thể sẽ không được nhắm mục tiêu cụ thể bởi một trong những cuộc tấn công trung gian
Tuy nhiên, các doanh nghiệp và tổ chức có thể nhắm mục tiêu. Per Ray, bất kỳ lưu lượng truy cập SSL được bảo vệ nào cũng có thể dễ bị tổn thương, cho dù đó là trang https, bảo mật cơ sở dữ liệu hoặc kết nối e-mail bảo mật. Vấn đề không cho phép giải mã và ăn cắp dữ liệu mã hóa SSL hoàn toàn, mà thay vào đó cho phép chèn bất kỳ lệnh nào vào luồng truyền thông.
Một loạt các lỗi dẫn đến việc Dell cung cấp các bo mạch chủ với phần mềm độc hại và công ty đang trong quá trình kiểm tra quá trình thử nghiệm của mình để giải quyết các vấn đề trước khi gửi phần cứng cho khách hàng, hôm thứ Năm cho biết. Các máy chủ PowerEdge có thể chứa sâu W32.Spybot trong bộ nhớ flash. Các vấn đề phần mềm độc hại ảnh hưởng đến một số giới hạn của các bo mạch chủ thay thế trong bốn máy chủ, PowerEdge R310, PowerEdge R410, PowerEdge R510 và PowerEdge T410 mô hình, công ty cho
"Có một chuỗi các lỗi của con người dẫn đến vấn đề, đó nói rằng, chúng tôi đã xác định và thực hiện 16 bước quy trình bổ sung để đảm bảo điều này không xảy ra nữa ", phát ngôn viên của Dell, Jim Hahn, cho biết. không cung cấp thêm chi tiết về các bước được thêm vào để theo dõi và giải quyết các vấn đề đó. Nhưng ông nói rằng tất cả các bo mạch chủ bị ảnh hưởng đã bị loại khỏi chuỗi cung ứng dịch vụ. Phần mềm chống vi-rút hiện tại có chữ ký cập nhật sẽ gắn cờ sự hiện diện của phần mềm độc hại và n