MySQL là một trong những hệ quản trị cơ sở dữ liệu phổ biến nhất, được biết đến với sự ổn định, tính linh hoạt và dễ sử dụng. Khi kết hợp với Ubuntu, một hệ điều hành mã nguồn mở mạnh mẽ, bạn sẽ có một môi trường làm việc hiệu quả, tiện lợi cho việc quản lý dữ liệu. Để tận dụng hết sự tiện dụng này, bước đầu tiên chúng ta cần làm là cài đặt MySQL trên Ubuntu.
Đọc bài viết này để hiểu rõ hơn về:
- Điều kiện để cài đặt MySQL trên Ubuntu
- Cách cài đặt MySQL trên Ubuntu
- Cách cấu hình nâng cao
MySQL là gì?
Nhắc tới cơ sở dữ liệu mã nguồn mở, người ta nghĩ ngay tới MySQL – một trong những hệ quản trị cơ sở dữ liệu phổ biến nhất hiện nay. MySQL đã và đang trở thành lựa chọn ưu tiên của nhiều tổ chức, từ các doanh nghiệp vừa và nhỏ đến các tập đoàn lớn, nhờ vào nhiều ưu điểm nổi bật với khả năng xử lý nhanh chóng, độ tin cậy cao, dễ sử dụng. Nó hỗ trợ nhiều loại dữ liệu khác nhau và cho phép thực hiện các truy vấn phức tạp, giúp người dùng quản lý và thao tác dữ liệu một cách hiệu quả.
MySQL thường được sử dụng trong các ứng dụng yêu cầu cơ sở dữ liệu như hệ thống quản lý nội dung, thương mại điện tử và các trang web động. Ngoài ra, MySQL cũng là một phần quan trọng trong bộ LAMP (Linux, Apache, MySQL, PHP/Python/Perl), một nền tảng phổ biến và đáng tin cậy cho việc phát triển ứng dụng web.
Đọc thêm: MySQL là gì? Tổng hợp kiến thức MySQL đầy đủ và dễ hiểu
Ubuntu là gì?
Ubuntu là một trong những hệ điều hành Linux phổ biến nhất trên thế giới và dựa trên bản phân phối Debian – một bản phân phối (distribution) Linux nổi tiếng . Ubuntu nổi tiếng với tính ổn định cao, bảo mật và dễ sử dụng, điều này làm cho nó trở thành một lựa chọn lý tưởng cho cả người mới bắt đầu và cả những người dùng chuyên nghiệp.
Được thiết kế để cung cấp một trải nghiệm người dùng thân thiện, Ubuntu cung cấp một kho ứng dụng phong phú, hỗ trợ mạnh mẽ cho phần cứng và khả năng tùy biến cao. Ngoài ra, Ubuntu cũng thường được sử dụng làm hệ điều hành cho các máy chủ, máy tính để bàn và các thiết bị IoT nhờ khả năng quản lý hiệu quả và bảo mật tốt.
Khi lựa chọn hệ điều hành để cài đặt MySQL, Ubuntu thường được coi là một trong những lựa chọn hàng đầu vì một số ưu điểm sau:
- Miễn phí và mã nguồn mở: Ubuntu là một hệ điều hành miễn phí, mã nguồn mở, cho phép người dùng tự do sử dụng, chỉnh sửa và phân phối mà không cần lo ngại về chi phí bản quyền.
- Hỗ trợ lâu dài (LTS – Long-Term Support): Các phiên bản LTS của Ubuntu cung cấp sự ổn định và cập nhật bảo mật trong thời gian dài (thường là 5 năm), đảm bảo tính liên tục cho các dự án và ứng dụng quan trọng.
- Cộng đồng lớn mạnh: Ubuntu có một cộng đồng người dùng và lập trình viên lớn, luôn sẵn sàng cung cấp sự hỗ trợ và tài liệu phong phú.
- Bảo mật cao: Ubuntu cung cấp các bản cập nhật bảo mật thường xuyên, bao gồm cả MySQL, giúp bảo vệ dữ liệu và giảm thiểu rủi ro về bảo mật. Tính năng bảo mật AppArmor và các cơ chế tự động hóa giúp duy trì an ninh cho hệ thống.
- Dễ sử dụng và quản lý: Ubuntu được thiết kế với giao diện thân thiện và quy trình cài đặt, quản lý phần mềm đơn giản, phù hợp cho cả người mới làm quen với Linux.
- Tích hợp tốt với MySQL: Ubuntu là một nền tảng phổ biến để chạy MySQL nhờ vào sự ổn định, hỗ trợ cộng đồng mạnh mẽ và các công cụ quản lý dễ sử dụng.
Đọc thêm: Ubuntu là gì: Định nghĩa, Ưu điểm và Hướng dẫn cài đặt
Điều kiện để cài đặt MySQL trên Ubuntu
- Hệ điều hành Ubuntu: Bạn cần có Ubuntu cài đặt sẵn trên máy tính.
- Tài khoản người dùng với quyền sudo: Tài khoản này cho phép bạn thực hiện các lệnh quản trị hệ thống.
- Kết nối mạng ổn định: Đảm bảo máy tính của bạn có kết nối mạng ổn định để tải xuống và cài đặt các gói phần mềm.
- Quyền truy cập vào terminal: Bạn cần có quyền truy cập vào terminal (giao diện dòng lệnh) để thực hiện các lệnh cài đặt MySQL.
Cách cài đặt MySQL trên Ubuntu sử dụng gói apt từ terminal
Bước 1: Cập nhật package
Trước khi cài đặt, hãy cập nhật danh sách gói phần mềm để đảm bảo bạn có phiên bản mới nhất của các gói. Mở Terminal và chạy lệnh:
sudo apt update
Bước 2: Cài đặt MySQL
Sau khi đã cập nhất package, ta sử dụng lệnh sau để cài đặt MySQL Server:
sudo apt install mysql-server
Còn để cài đặt một phiên bản MySQL cụ thể trên Ubuntu, bạn có thể chỉ định phiên bản MySQL mong muốn trong lệnh cài đặt với cú pháp như sau:
sudo apt install mysql-server-[version]
Ví dụ để cài đặt phiên bản MySQL 8.0 ta có cú pháp như sau:
sudo apt install mysql-server-8.0
Lệnh này sẽ cài đặt phiên bản MySQL 8.0 thay vì phiên bản mới nhất theo mặc định.
Bước 3: Cấu hình bảo mật cho MySQL
Sau khi cài đặt MySQL, bước tiếp theo là thực hiện thiết lập bảo mật ban đầu cho cài đặt MySQL của bạn. Quy trình bảo mật bao gồm:
- Thiết lập lại mật khẩu
- Xóa tài khoản anonymous và cơ sở dữ liệu kiểm thử không cần thiết
- Hạn chế quyền truy cập để tăng cường bảo mật tổng thể.
bằng cách sử dụng lệnh sau:
sudo mysql_secure_installation
Lệnh này sẽ kết nối đến máy chủ MySQL. Nếu tài khoản root chưa được thiết lập mật khẩu, lệnh có thể kết nối mà không yêu cầu mật khẩu. Tùy thuộc vào cấu hình hệ thống, người dùng có thể được yêu cầu cung cấp mật khẩu của tài khoản root trong bước này.
3.1 Xử lý lỗi khi chạy mysql_secure_installation
Trong một số trường hợp, khi chạy lệnh mysql_secure_installation, có thể xảy ra lỗi do tài khoản root trên Ubuntu không được cấu hình để kết nối bằng mật khẩu. Cụ thể, từ tháng 7/2022, nếu tài khoản root đang sử dụng phương thức xác thực auth_socket, script sẽ gặp lỗi khi cố gắng đặt mật khẩu cho tài khoản này.
Lỗi có thể xuất hiện như sau:
Output … Failed! Error: SET PASSWORD has no significance for user ‘root’@’localhost’ as the authentication method used doesn’t store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters. New password: |
Để khắc phục lỗi này, bạn có thể làm theo các bước sau:
Bước 1: Chuyển sang phương thức xác thực sử dụng mật khẩu bằng cách mở MySQL prompt với lệnh sau:
sudo mysql
Bước 2: Chạy lệnh sau để thay đổi phương thức xác thực cho tài khoản root sang sử dụng mật khẩu:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Thay password bằng mật khẩu bạn muốn đặt cho tài khoản root.
Bước 3: Thoát khỏi MySQL prompt:
exit
Sau đó, bạn có thể tiếp tục chạy lệnh mysql_secure_installation mà không gặp phải lỗi trên.
3.2 Thiết lập mật khẩu
Đầu tiên, hệ thống sẽ yêu cầu thiết lập quy tắc xác thực mật khẩu. Nhấn Y để tiếp tục hoặc ký tự bất kỳ để bỏ qua bước này.
Người dùng có ba tùy chọn cho chính sách mật khẩu:
- 0 – thấp.
- 1 – trung bình.
- 2 – mạnh.
Chọn một tùy chọn và nhấn Enter.
Tùy thuộc vào hệ thống, bước tiếp theo sẽ yêu cầu thiết lập mật khẩu hoặc bị bỏ qua hoàn toàn.
- Trường hợp được yêu cầu thiết lập lại mật khẩu: Bạn sẽ nhập mật khẩu 2 lần để xác nhận.
- Trường hợp người dùng root đăng nhập mà không cung cấp mật khẩu: Trong trường hợp này, phương thức xác thực auth_socket được sử dụng theo mặc định, cho phép người dùng đăng nhập bằng thông tin xác thực của hệ điều hành.
Bạn vẫn có thể thay đổi mật khẩu bằng lệnh sau:
ALTER USER 'root'@'localhost' IDENTIFIED BY '[password]';
3.3 Xoá người dùng ẩn danh
Người dùng ẩn danh là các tài khoản được tạo mặc định mà không có tên cụ thể, cho phép kết nối với MySQL mà không cần thông tin xác thực. Mặc dù ban đầu được thiết kế để thử nghiệm, nhưng nên xóa người dùng này vì lý do:
- Người dùng ẩn danh có thể đăng nhập vào MySQL mà không cần tài khoản rõ ràng, gây rủi ro bảo mật vì họ có thể truy cập vào cơ sở dữ liệu với quyền hạn hạn chế.
- Việc giữ lại người dùng ẩn danh có thể tạo cơ hội cho những cuộc tấn công không mong muốn vào hệ thống cơ sở dữ liệu.
Bạn có thể xoá người dùng ẩn danh bằng cách chạy lệnh sudo mysql_secure_installation và trả lời bằng Y để đảm bảo thiết lập MySQL an toàn hơn.
Bước 4: Kiểm tra trạng thái của MySQL
Sau khi cài đặt, MySQL sẽ tự động khởi động. Để xác minh rằng máy chủ đang hoạt động ta dùng lệnh sau:
sudo systemctl status mysql
Bước 5: Đăng nhập vào MySQL Server
Bước cuối cùng là đăng nhập vào máy chủ MySQL, ta dùng lệnh sau:
sudo mysql -u root -p
Lệnh trên sẽ cung cấp cho người dùng root quyền truy cập vào giao diện MySQL và khả năng tương tác với máy chủ cơ sở dữ liệu MySQL bằng các lệnh và truy vấn SQL. Nếu người dùng đã đặt mật khẩu cho root, lệnh sẽ nhắc nhập mật khẩu của người dùng root. Sau khi cung cấp, người dùng sẽ có toàn quyền truy cập.
Cài đặt MySQL trên Ubuntu từ trang chủ MySQL
Bước 1: Tải gói cài đặt MySQL từ trang chủ:
Truy cập trang web chính thức của MySQL tại MySQL Downloads. Tại đây, chọn phiên bản MySQL mong muốn và hệ điều hành tương ứng (Ubuntu/Debian).
Bạn sẽ nhận được một tệp .deb để cài đặt MySQL. Sau khi tải xuống, mở Terminal và điều hướng đến thư mục chứa tệp .deb của bạn:
cd /đường-dẫn-tới-tệp
Bước 2: Cài đặt gói tải về
Sau khi đã điều hướng đến thư mục chứa tệp .deb, sử dụng lệnh dpkg để cài đặt gói:
sudo dpkg -i tên-tệp-deb
Lưu ý thay tên-tệp-deb bằng tên tệp .deb mà bạn đã tải về.
Sau khi chạy lệnh này, một giao diện cấu hình sẽ xuất hiện. Bạn có thể chọn phiên bản MySQL mà bạn muốn cài đặt trong danh sách.
Bước 3: Cập nhật danh sách gói
Sau khi cấu hình MySQL APT repository, cập nhật lại danh sách gói với lệnh sau:
sudo apt update
Bước 4: Cài đặt MySQL Server
Cuối cùng, cài đặt MySQL bằng lệnh:
sudo apt install mysql-server
Bước 5: Cấu hình bảo mật
Sau khi cài đặt, thực hiện các bước cấu hình bảo mật như đã hướng dẫn trước đó:
sudo mysql_secure_installation
Sau khi hoàn thành các bước trên, MySQL đã được cài đặt thành công trên hệ thống Ubuntu của bạn và sẵn sàng sử dụng.
Một số thao tác khác trong MySQL
Cho phép truy cập từ xa
Nếu bạn muốn kết nối với MySQL từ một máy khác (không cùng server), bạn cần mở cổng firewall (mặc định là cổng 3306). Chạy các lệnh sau để bật firewall và cho phép truy cập MySQL từ xa:
sudo ufw enable sudo ufw allow mysql
Sau khi mở cổng firewall, bạn có thể sử dụng cú pháp sau để kết nối từ xa với MySQL:
mysql -h mysql_server_ip -P mysql_port -u username -p
Trong đó:
- mysql_server_ip: Địa chỉ IP của server MySQL.
- mysql_port: Cổng MySQL (mặc định là 3306, trừ khi bạn đã thay đổi).
- username: Tên người dùng MySQL.
Ví dụ, nếu bạn muốn kết nối tới server MySQL có địa chỉ IP là 192.168.1.100 qua cổng mặc định 3306 với tài khoản root, cú pháp sẽ như sau:
mysql -h 192.168.1.100 -P 3306 -u root -p
Xem danh sách người dùng
Để xem danh sách các người dùng đã được thiết lập trên MySQL, bạn có thể sử dụng lệnh sau:
SELECT User, Host, authentication_string FROM mysql.user;
Lệnh này sẽ hiển thị tên người dùng, host liên kết và chuỗi mật khẩu đã mã hóa.
Tạo và quản lý cơ sở dữ liệu
- Để tạo một cơ sở dữ liệu mới, sử dụng lệnh:
CREATE DATABASE ten_database;
- Sau khi tạo, bạn có thể xem danh sách các cơ sở dữ liệu bằng lệnh:
SHOW DATABASES;
Tạo người dùng mới và gán quyền truy cập
Cách 1: Sử dụng cú pháp CREATE USER
Tạo người dùng mới: Bạn có thể sử dụng lệnh CREATE USER để tạo người dùng mới. Ví dụ, tạo người dùng sammy với quyền truy cập cục bộ và mật khẩu ‘password’:
CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';
Nếu bạn muốn người dùng có thể kết nối từ xa, thay thế localhost bằng địa chỉ IP của máy chủ hoặc sử dụng ký tự % để cho phép truy cập từ bất kỳ địa chỉ IP nào.
Gán quyền truy cập: Sau khi tạo người dùng, bạn có thể cấp quyền truy cập cho họ với lệnh GRANT. Ví dụ, gán toàn bộ quyền truy cập cho cơ sở dữ liệu demodb:
GRANT ALL PRIVILEGES ON demodb.* TO 'sammy'@'localhost';
Làm mới quyền: Sau khi thực hiện thay đổi, dùng lệnh sau:
FLUSH PRIVILEGES;
Cách 2: Chèn trực tiếp vào mysql.user
Thay vì sử dụng tài khoản root với quyền truy cập cao, bạn có thể tạo người dùng mới với quyền giới hạn. Ví dụ, tạo người dùng demouser và gán quyền đầy đủ cho cơ sở dữ liệu demodb với lệnh sau:
-- Chèn một người dùng mới vào bảng mysql.user -- Các trường ssl_cipher, x509_issuer và x509_subject được để trống vì không yêu cầu SSL cho người dùng này INSERT INTO mysql.user (User,Host,authentication_string,ssl_cipher,x509_issuer,x509_subject) VALUES('demouser','localhost',PASSWORD('matkhau_demo'),'','',''); -- Làm mới lại quyền để áp dụng thay đổi FLUSH PRIVILEGES; -- Gán tất cả các quyền cho tất cả các bảng trong cơ sở dữ liệu 'demodb' GRANT ALLPRIVILEGES ON demodb.* TO 'demouser'@'localhost'; -- Làm mới lại quyền một lần nữa để áp dụng thay đổi mới nhất FLUSH PRIVILEGES;
Cấu hình Nâng cao MySQL: Tối ưu hóa Hiệu suất Máy chủ
Việc cấu hình nâng cao MySQL giúp tối ưu hóa hiệu suất máy chủ, đặc biệt quan trọng khi bạn cần MySQL hoạt động nhanh hơn và ổn định hơn. Cấu hình nâng cao bao gồm việc điều chỉnh các tham số trong tệp cấu hình của MySQL để máy chủ có thể xử lý khối lượng công việc lớn hơn, đáp ứng tốt hơn nhu cầu sử dụng.
Quy trình thực hiện cấu hình nâng cao
Bước 1: Sao lưu dữ liệu hiện có
Trước khi thay đổi cấu hình, hãy sao lưu toàn bộ dữ liệu của MySQL để tránh mất mát thông tin với lệnh sau:
mysqldump --all-databases --routines -u root -p > ~/fulldump.sql
Lệnh này sẽ tạo bản sao toàn bộ dữ liệu. Tuy nhiên phải lưu ý đảm bảo không có người dùng nào truy cập cơ sở dữ liệu trong lúc sao lưu.
Bước 2: Dừng MySQL và sao lưu cấu hình hiện tại
Tắt MySQL để ngăn không cho bất kỳ thay đổi nào xảy ra trong quá trình cấu hình với lệnh sau:
sudo service mysql stop
Sau đó, sao lưu các tệp cấu hình gốc của MySQL để có thể khôi phục nếu cần với lệnh sau:
sudo rsync -avz /etc/mysql /root/mysql-backup
Bước 3: Thực hiện thay đổi cấu hình
Mở và chỉnh sửa tệp cấu hình MySQL (/etc/mysql/my.cnf hoặc my.ini), thay đổi các tham số để phù hợp với nhu cầu của bạn.
Bạn có thể tìm hiểu thêm về các cấu hình của MySQL tại đây.
Bước 4: Xóa và khởi tạo lại không gian cơ sở dữ liệu
Sau khi thay đổi cấu hình, bạn cần xóa và khởi tạo lại cơ sở dữ liệu để đảm bảo cấu hình mới được áp dụng với lệnh sau:
sudo rm -rf /var/lib/mysql/* sudo mysqld --initialize sudo chown -R mysql: /var/lib/mysql sudo service mysql start
Bước 5: Nhập lại dữ liệu đã sao lưu
Sử dụng tệp sao lưu từ bước đầu để khôi phục lại toàn bộ dữ liệu bằng lệnh:
cat ~/fulldump.sql | mysql
Với dữ liệu lớn, bạn có thể sử dụng Pipe Viewer để theo dõi tiến trình nhập như sau:
sudo apt install pv pv ~/fulldump.sql | mysql
Lưu ý: Không phải tất cả các thay đổi trong cấu hình đều yêu cầu khởi động lại MySQL. Một số thay đổi có thể áp dụng ngay trong khi máy chủ đang chạy. Luôn sao lưu tệp cấu hình và dữ liệu trước khi thực hiện bất kỳ điều chỉnh nào.
Câu hỏi thường gặp về Cài đặt MySQL trên Ubuntu
Làm thế nào để gỡ cài đặt MySQL khỏi Ubuntu?
Để gỡ cài đặt MySQL hoàn toàn khỏi Ubuntu, bạn có thể làm theo các bước sau:
Bước 1: Dừng dịch vụ MySQL: Trước khi gỡ cài đặt, hãy dừng dịch vụ MySQL để tránh các xung đột có thể xảy ra bằng lệnh:
sudo systemctl stop mysql
Bước 2: Gỡ cài đặt MySQL và các gói liên quan: Sử dụng lệnh apt purge để gỡ cài đặt MySQL, các gói liên quan như client, file chung… ta sử dụng cú pháp sau:
sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*
Bước 3: Xóa file cấu hình và cơ sở dữ liệu (Tùy chọn): Nếu muốn xóa hoàn toàn mọi dấu vết của MySQL, bao gồm file cấu hình và cơ sở dữ liệu, bạn có thể dùng lệnh:
sudo rm -rf /etc/mysql /var/lib/mysql
Lưu ý: Lệnh này sẽ xóa vĩnh viễn mọi file cấu hình và cơ sở dữ liệu MySQL. Hãy chắc chắn sao lưu dữ liệu quan trọng trước khi thực hiện.
Bước 4: Xóa các gói MySQL còn lại (tùy chọn): Để dọn dẹp các gói phụ thuộc MySQL không còn cần thiết ta sử dụng lệnh:
sudo apt autoremove
Có cần quyền sudo khi gỡ cài đặt MySQL trên Ubuntu không?
Có, bạn cần quyền sudo để thực hiện các lệnh gỡ cài đặt và xóa các file cấu hình và cơ sở dữ liệu của MySQL vì chúng yêu cầu quyền quản trị hệ thống.
MySQL có hỗ trợ khôi phục sau khi thay đổi cấu hình không?
Có, và bạn nên sao lưu cấu hình và dữ liệu trước khi thay đổi. Nếu có sự cố, bạn có thể khôi phục lại bằng cách sử dụng các bản sao lưu đã tạo.
Tổng kết Cài đặt MySQL trên Ubuntu
Cài đặt MySQL trên Ubuntu là bước đầu quan trọng để thiết lập hệ thống quản lý cơ sở dữ liệu. Việc sử dụng MySQL trên Ubuntu không chỉ giúp bạn quản lý dữ liệu một cách hiệu quả, mà còn cung cấp nền tảng vững chắc cho các ứng dụng và dịch vụ của bạn, đảm bảo hoạt động ổn định và tối ưu hóa hiệu suất hệ thống.
ITviec hy vọng bài viết trên đã cung cấp cho bạn đầy đủ thông tin để cài đặt MySQL trên Ubuntu thành công.