VPS căn bản [Phần 9] – Cài đặt MySQL & phpMyAdmin

phpmyadmin

Bài viết này thực hiện (hoặc lụm bài về đăng câu like từ các trang khác) bởi Việt Lâm Coder một YOUTUBER có tâm và đẹp trai siêu cấp vô địch zũ trụ.

Bạn đã có PHP trên VPS rồi nhưng ứng dụng đó chỉ cho phép bạn thực thi các file PHP mà thôi, chứ chưa thể cài được WordPress bởi vì bạn sẽ cần thêm một ứng dụng rất quan trọng nữa là MySQL để hỗ trợ lưu trữ database cho website WordPress mà bạn sẽ cài vào sắp tới.

I. Cách cài MySQL vào VPS

Cài MySQL cũng rất dễ, chúng ta cũng vẫn sẽ sử dụng Yum package để cài đặt. Bạn chạy lệnh dưới đây để cài MySQL:

01
sudo yum install mysql-server -y

Sau đó khởi động MySQL (tên service là mysqld):

01
sudo service mysqld start

Và nó sẽ hiện ra rất nhiều thông tin như thế này:

Điều này có nghĩa là chúng ta chỉ mới cài MySQL vào nhưng chưa thiết lập cho nó, vả lại chúng ta còn thiếu một thông tin cực kỳ quan trọng đó là MySQL Root Password. MySQL Root Password là mật khẩu cho database user tên là root để đăng nhập vào MySQL.

Bạn đừng nhầm lẫn giữa root password cho MySQL và root password của VPS, hai cái này hoàn toàn khác nhau.

Để thiết lập, bạn chạy đoạn sau:

01
sudo /usr/bin/mysql_secure_installation

Đầu tiên là nó sẽ hỏi:

Do bạn chưa thiết lập mật khẩu root cho MySQL nên ấn Enter mà không cần nhập gì cả.

Tiếp tục nó sẽ hỏi bạn muốn thiết lập mật khẩu cho user root hay không, gõ y và enter.

Cuối cùng nó sẽ hỏi bạn thêm 4 câu hỏi nữa, cứ ấn Y rồi Enter hết.

Ok, hãy khởi động lại MySQL nhé.

01
sudo service mysqld restart

Bây giờ bạn đã có một MySQL Server trên VPS và đã có mật khẩu root của MySQL rồi. Hãy thử đăng nhập vào MySQL với lệnh sau:

01
sudo mysql -u root -p123456

Trong đó, root là tên user root và 123456 là mật khẩu root của MySQL mà bạn vừa thiết lập.

Nếu nó hiện ra thế này là thành công:

Gõ exit; để thoát ra.

II. Tạo database và database user trên VPS

Chắc các bạn cũng đã biết là khi cài WordPress trên Shared Host, chúng ta phải tạo cho nó một cái database đúng không? Ở đây cũng vậy, chúng ta cũng phải cần tạo ra một database và một database user để kết nối vào WordPress để lưu trữ dữ liệu.

Mặc dù bạn có thể sử dụng database user là root với mật khẩu root của MySQL nhưng việc này quá nguy hiểm nếu bạn có nhiều database khác nhau, vì hacker chỉ cần biết mật khẩu root của MySQL là có thể chiếm quyền quản trị toàn bộ databases có trên VPS.

Do đó, mình khuyến khích bạn sử dụng một database user riêng cho từng database để an toàn.

Đăng nhập vào MySQL

Để làm việc với MySQL chúng ta đều phải cần đăng nhập vào MySQL Server với lệnh mysql.

01
mysql -u root -p123456

Có thể bạn không cần viết thẳng cái mật khẩu ra đằng sau -p vì bạn có thể nhập nó sau khi thực hiện lệnh đăng nhập.

Lưu ý thêm một điều là trong MySQL bạn sẽ viết bằng lệnh SQL, nên mỗi câu lệnh bạn phải kết thúc bằng dấu hai chấm (;).

2.1) Lệnh tạo database

Để tạo database, chúng ta sử dụng lệnh sau trong MySQL Server:

01
CREATE DATABASE dulieu1;

Trong đó, dulieu1 là tên database mà mình cần tạo. Thông báo thực hiện thành công sẽ có dạng này:

01
Query OK, 1 row affected (0.00 sec

Để chắc chắn là bạn đã có database vừa tạo trên server, hãy gõ lệnh:

01
SHOW DATABASES;

Kết quả trả về:

01
02
03
04
05
06
07
08
09
+--------------------+
| Database |
+--------------------+
| information_schema |
| dulieu1 |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

2.2) Lệnh tạo database user

Để tăng khả năng bảo mật, MySQL không đơn phương cho phép ứng dụng gửi dữ liệu trực tiếp vào ổ cứng mà sẽ thông qua quyền kiểm soát của một database user. Và để tránh việc sử dụng user root làm user thực hiện lệnh kết nối vì lý do bảo mật, chúng ta sẽ cần tạo một database user khác để quản lý database dulieu1 mà chúng ta vừa tạo ở trên.

Lệnh tạo database user như sau:

01

Trong đó, localhost là hostname của bạn, bạn không nên thay đổi cái này trừ khi bạn biết mình đang làm gì.

Bây giờ chúng ta đã có một user mang tên dulieu1_user, bạn có thể đặt tên bất kỳ nhưng mình đặt như thế này cho dễ nhớ.

Để chắc chắn bạn đã có user vừa tạo trên server, hãy kiểm tra bằng cách chạy lệnh sau:

01
SELECT User FROM mysql.user;

Kết quả trả về:

01
02
03
04
05
06
07
08
09
+--------------+
| User |
+--------------+
| dulieu1_user |
| root |
| root |
| root |
+--------------+
4 rows in set (0.00 sec)

Đã gọi là user thì phải có password, bây giờ chúng ta sẽ thiết lập password cho user dulieu1_user vừa tạo bằng lệnh sau:

01
SET PASSWORD FOR dulieu1_user@localhost= PASSWORD("123456");

Trong đó, 123456 ở cuối dòng lệnh là mật khẩu mà bạn cần thiết lập cho user dulieu1_user.

Bây giờ bạn có thể thoát ra khỏi MySQL Server bằng lệnh exit; và thử đăng nhập vô MySQL Server bằng user mà bạn vừa tạo.

01
mysql -u dulieu1_user -p123456

Sau đó gõ lệnh SHOW DATABASES; xem danh sách database mà nó đang sở hữu.

Bạn có thể thấy là nó chỉ có đúng một database mặc định tên là information_schema chứ không hề có database mang tên dulieu1. Và nếu nó chưa hiển thị database cần kết nối ở đây thì cũng đồng nghĩa với việc bạn sẽ bị báo lỗi kết nối database khi cài đặt WordPress.

Lý do là ở trên chúng ta chỉ vừa tạo database và database user mà thôi chứ chưa hề cấp quyền cho user dulieu1_user sử dụng database dulieu1. Ở phần dưới chúng ta sẽ làm công việc này.

2.3) Cấp quyền cho database user truy cập vào database

Hãy thoát ra và đăng nhập vào lại MySQL Server với tài khoản root nhé. Bây giờ ở đây chúng ta sẽ cần cấp quyền cho user tên là dulieu1_user có thể kết nối vào database tên dulieu1, thì chúng ta sẽ có lệnh như sau:

01
GRANT ALL PRIVILEGES ON dulieu1.* TO dulieu1_user@localhost IDENTIFIED BY '123456';

Hãy nhớ là nếu nó hiển thị Query OK, 0 rows affected (0.00 sec) thì mới là thành công nhé.

Trong đó, 123456 chính là mật khẩu của user dulieu1_user.

Cấp quyền xong, hãy gõ lệnh sau để nó tái tạo lại MySQL Server để cập nhật.

01
FLUSH PRIVILEGES;

Ok, bây giờ database user tên dulieu1_user đã có quyền truy cập database tên là dulieu1 rồi. Bạn có thể thử login vào MySQL Server với database user vừa tạo và ấn lệnh SHOW DATABASES xem nó có hiển thị database vừa được cấp quyền không.

III. Tối ưu MySQL

Mặc định khi cài MySQL vào nó chưa được tối ưu nếu bạn gửi nhiều request cùng lúc, bạn hãy mở file /etc/my.cnf lên và chèn đoạn sau vào dưới cuối của file đó:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
[mysqld]
key_buffer = 500M
table_cache = 4000
sort_buffer_size = 3M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
max_connections = 400
query_cache_type = 1
query_cache_limit = 5M
query_cache_size = 500M
tmp_table_size=20M
max_heap_table_size=20M
thread_cache_size = 64

Sau đó khởi động lại MySQL với lệnh service mysqld restart.

IV. Cài đặt phpMyAdmin

Có thể bạn sẽ cảm thấy hơi khó khăn nếu sử dụng các dòng lệnh để thao tác những tác vụ cần thiết như tạo database, sửa dữ liệu,…nên có thể bạn sẽ khá cần đến công cụ phpMyAdmin để quản trị database dễ hơn.

Chạy lệnh sau để cài đặt phpMyAdmin:

01
yum install phpMyAdmin

Mở file /etc/httpd/conf.d/phpMyAdmin.conf lên và tìm:

01
02
03
04
05
06
07
<IfModule !mod_authz_core.c>
  # Apache 2.2
  Order Deny,Allow
  Deny from All
  Allow from 127.0.0.1
  Allow from ::1
</IfModule>

Sửa 127.0.0.1 thành IP máy tính của bạn vì mặc định nó chỉ có thể truy cập bởi mạng nội bộ trên máy chủ.

Sau đó là khởi động lại Apache.

01
service httpd restart

Bây giờ bạn có thể truy cập vào phpMyAdmin với đường dẫn http://example.com/phpmyadmin. Bạn có thể truy cập với bất kỳ domain nào có trên VirtualHost.

Nếu bạn muốn thay đường dẫn từ http://domain/phpMyAdmin> thành http://domain/hehe> thì sửa 2 đoạn ở đầu file /etc/httpd/conf.d/phpMyAdmin.conf:

thành

Và khởi động lại Apache:

01
service httpd restart

Lời kết

Vậy là bây giờ ta đã có một webserver có đầy đủ các chức năng để chạy được một website WordPress rồi, còn chần chờ gì nữa mà không cài ngay một website WordPress lên nào. Ở phần sau, mình sẽ hướng dẫn bạn cách cài một website WordPress bằng cách nhanh nhất trên VPS.

Bài viết này thực hiện (hoặc lụm bài về đăng câu like từ các trang khác) bởi Việt Lâm Coder một YOUTUBER có tâm và đẹp trai siêu cấp vô địch zũ trụ.

Liên hệ ngay với Việt Lâm Coder
Xin chào! Chúng tôi có thể giúp gì cho bạn ?
Gọi ngay cho chúng tôi