Công nghệ điện toán đám mây đang là xu hướng trong thời kỳ phát triển công nghệ số của doanh nghiệp hiện nay. Với khả năng hoạt động, độ ổn định và độ tin cậy của nền tảng đám mây Azure. Khách hàng có thể tiết kiệm được nhiều chi phí khi chuyển đổi cơ sở dữ liệu MySQL của mình sang Azure
Việc chuyển MySQL lên Azure, khách hàng sẽ không cần lắng nghe việc mua thêm máy chủ khi cần mở rộng. Hơn nữa, với khả năng ứng dụng của Azure lên tới 99. 99%, bạn sẽ không phải truy cập vào giai đoạn gián đoạn do máy chủ gặp sự cố. Ngoài ra, nền tảng đám mây tin cậy Azure của Microsoft được nhiều người lựa chọn vì tính bảo mật cao. Azure được tích hợp nhiều công nghệ ATP cao cấp, giúp bảo vệ dữ liệu MySQL của khách hàng khỏi các vụ tấn công mạng, virus và phần mềm độc hại
Các lưu ý trước khi chuyển MySQL lên Azure
- Only support for MySQL 5 version. 6 và 5. 7
- SSMA for MySQL from version 7. 3 trở lên
- Net Framework từ phiên bản 3. 5 trở lên
- Đã cài đặt SSDT
- SSIS đã cài đặt
Các bước di chuyển MySQL lên Azure
1. Thực hiện chuyển đổi công cụ lưu trữ
Azure sử dụng MySQL phiên bản 5. 6 hoặc 5. 7 nên mặc định sử dụng công cụ lưu trữ là InnoDB. Do vậy đối với MySQL có phiên bản thấp hơn muốn di chuyển lên Azure phải thực hiện chuyển đổi công cụ lưu trữ sang InnoDB
Trong bài đăng trên blog này, chúng tôi xem xét một số khía cạnh quan trọng của việc định cấu hình và quản lý SSL trong dịch vụ lưu trữ MySQL. Chúng sẽ bao gồm cấu hình mặc định, tắt SSL, bật và thực thi SSL trên máy chủ MySQL. Các quan sát của chúng tôi dựa trên phiên bản cộng đồng của MySQL 5. 7. 21
Cấu hình SSL mặc định trong MySQL
Mặc định MySQL server luôn cài đặt và kích hoạt cấu hình SSL. Tuy nhiên, không bắt buộc khách hàng kết nối bằng SSL. Khách hàng có thể chọn kết nối có hoặc không có SSL vì máy chủ cho phép cả hai loại kết nối. Hãy xem cách xác minh hành vi mặc định này của máy chủ MySQL
Khi SSL được cài đặt và kích hoạt mặc định trên máy chủ MySQL, thông thường chúng ta sẽ thấy như sau
- Sự hiện diện của *. pem trong thư mục dữ liệu MySQL. Đây là các khóa và chứng chỉ máy khách và máy chủ khác nhau được sử dụng cho SSL như được mô tả
- Sẽ có một ghi chú trong tệp nhật ký lỗi mysqld trong khi khởi động máy chủ, chẳng hạn như
- [Lưu ý] Tìm thấy ca. pem, chứng chỉ máy chủ. pem và khóa máy chủ. pem trong thư mục dữ liệu. Cố gắng kích hoạt hỗ trợ SSL bằng cách sử dụng chúng
- Giá trị của biến 'have_ssl' sẽ là CÓ
mysql> hiển thị các biến như ‘have_ssl’;
+—————+——-+
tên_biến. Giá trị
+—————+——-+
have_ssl. VÂNG
+—————+——-+
Đối với máy khách MySQL, theo mặc định, nó luôn cố gắng kết nối mạng được mã hóa với máy chủ và nếu không thành công, nó sẽ quay trở lại chế độ không được mã hóa
Vì vậy, bằng cách kết nối với máy chủ MySQL bằng lệnh
mysql -h -u -p
Chúng tôi có thể kiểm tra xem kết nối máy khách hiện tại có được mã hóa hay không bằng lệnh status
mysql> trạng thái
————–
mysql Phiên bản 14. 14 Phân phối 5. 7. 21, dành cho Linux [x86_64] sử dụng trình bao bọc EditLine
Id kết nối. 75
cơ sở dữ liệu hiện tại
Người dùng hiện tại. [email được bảo vệ]
SSL. Mật mã đang sử dụng là DHE-RSA-AES256-SHA
Máy nhắn tin hiện tại. tiêu chuẩn
sử dụng outfile. ”
Sử dụng dấu phân cách. ;
phiên bản máy chủ. 5. 7. Máy chủ Cộng đồng MySQL 21-log [GPL]
phiên bản giao thức. 10
Sự liên quan. 127. 0. 0. 1 qua TCP/IP
…………………………
Trường SSL được đánh dấu ở trên cho biết rằng kết nối được mã hóa. Tuy nhiên, chúng ta có thể yêu cầu máy khách MySQL kết nối mà không cần SSL bằng cách sử dụng lệnh
mysql -h -u -p –ssl-mode=DISABLED
mysql> trạng thái
————–
Id kết nối. 93
cơ sở dữ liệu hiện tại
Người dùng hiện tại. [email được bảo vệ]
SSL. không sử dụng
Máy nhắn tin hiện tại. tiêu chuẩn
sử dụng outfile. ”
Sử dụng dấu phân cách. ;
phiên bản máy chủ. 5. 7. Máy chủ Cộng đồng MySQL 21-log [GPL]
phiên bản giao thức. 10
Sự liên quan. 127. 0. 0. 1 qua TCP/IP
……………………………
Chúng ta có thể thấy rằng mặc dù SSL được bật trên máy chủ nhưng chúng ta vẫn có thể kết nối với nó mà không cần SSL
Hướng dẫn MySQL - Cách định cấu hình và quản lý SSL trên máy chủ #MySQL của bạnNhấp để TweetVô hiệu hóa SSL trong MySQL
Nếu yêu cầu của bạn là tắt hoàn toàn SSL trên máy chủ MySQL thay vì tùy chọn mặc định là ‘enabled, but optional mode’, chúng ta có thể thực hiện như sau
- Xóa *. chứng chỉ pem và các tệp chính trong thư mục dữ liệu MySQL
- Khởi động MySQL với tùy chọn SSL bị tắt. Điều này có thể được thực hiện bằng cách thêm một mục nhập dòng
ssl=0 trong thư mục của tôi. tập tin cnf
Chúng ta có thể quan sát rằng
- Sẽ KHÔNG có bất kỳ ghi chú nào trong nhật ký mysqld, chẳng hạn như
- [Lưu ý] Tìm thấy ca. pem, chứng chỉ máy chủ. pem và khóa máy chủ. pem trong thư mục dữ liệu. Cố gắng kích hoạt hỗ trợ SSL bằng cách sử dụng chúng
- Giá trị của biến 'have_ssl' sẽ bị TẮT
mysql> hiển thị các biến như ‘have_ssl’;
+—————+——-+
tên_biến. Giá trị
+—————+——-+
have_ssl. TÀN TẬT
+—————+——-+
Thực thi SSL trong MySQL
Chúng tôi thấy rằng mặc dù SSL được bật theo mặc định trên máy chủ MySQL nhưng nó không được thực thi và chúng tôi vẫn có thể kết nối mà không cần SSL
Giờ đây, bằng cách đặt biến hệ thống, chúng tôi sẽ có thể thực thi rằng máy chủ sẽ chỉ chấp nhận các kết nối SSL. Điều này có thể được xác minh bằng cách thử kết nối với máy chủ MySQL bằng lệnh
mysql -h -u sgroot -p –ssl-mode=DISABLED
Và, chúng ta có thể thấy rằng kết nối sẽ bị từ chối với thông báo lỗi sau từ máy chủ
LỖI 3159 [HY000]. Các kết nối sử dụng phương tiện truyền tải không an toàn bị cấm trong khi –require_secure_transport=ON
Cân nhắc SSL cho các kênh sao chép
Theo mặc định, trong thiết lập sao chép MySQL, các nô lệ kết nối với chủ mà không cần mã hóa
Do đó, để kết nối với chủ một cách an toàn cho lưu lượng sao chép, các nô lệ phải sử dụng MASTER_SSL=1; . Xin lưu ý rằng tùy chọn này cũng bắt buộc trong trường hợp chủ của bạn được định cấu hình để thực thi kết nối SSL bằng cách sử dụng