Hướng dẫn cài đặt mysql server 5.7

MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở và miễn phí, phổ biến nhất thế giới và được các developer ưa chuộng nhất trong quá trình phát triển ứng dụng. Mình đi deploy nhiều quá, nên tiện viết lại bài viết này để gửi cho bên triển khai luôn cho đỡ mất công viết lại docs hướng dẫn lần nữa. Trong bài viết này mình sẽ hướng dẫn step by step bằng các command để các bạn cài đặt MySQL trên CentOS 7,

Trong bài viết này mình sẽ hướng dẫn càu đặt hai phiên bản phổ biến nhất và hay được sử dụng nhất là phiên bản 8.0 và phiên bản 5.7. Chú ý tuỳ từng nhu cầu để chọn phiên bản phù hợp nhất nhé.

1. Cài đặt MySQL

Với MySQL 8.0 trên CentOS 7.

Thêm repository

sudo yum localinstall //dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

Cài đặt sau khi thêm repository

sudo yum install mysql-community-server

Với MySQL 5.7 trên CentOS 7.

Thêm repository

sudo yum localinstall //dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

Cài đặt sau khi thêm repository

sudo yum install mysql-community-server

2. Khởi động MySQL

Kích hoạt MySQL khởi động cùng system

sudo systemctl enable mysqld

Khởi động MySQL

sudo systemctl start mysqld

Kiểm tra MySQL service đã hoạt động chưa?

sudo systemctl status mysqld

2. Đặt lại MySQL Root Password

Với MySQL 5.7

Khi MySQL khởi chạy lần đầu, một mật khẩu tạm sẽ được sinh ra ngẫu nhiên cho root user của MySQL. Bạn có thể tìm mật khẩu đó bằng câu lệnh bên dưới:

Tìm mật khẩu tạm được gen ngẫu nhiên lần đầu:

sudo grep 'temporary password' /var/log/mysqld.log

Ouput lệnh trên sẽ hiện ra password

2021-09-22T17:33:40.984983Z 1 [Note] A temporary password is generated for root@localhost: odG*hI-hn9Rx

Giờ chúng ta cần đi thay đổi mật khẩu này bằng một mật khẩu dễ nhớ hơn, bằng cách chạy lệnh mysql_secure_installation để cải thiện tính bảo mật của MySQL

sudo mysql_secure_installation

Nhập mật khẩu tạm thời của bạn. Sau đó làm theo hướng dẫn:

Enter password for user root: odG*hI-hn9Rx New password: Nhập mật khẩu Mysql mới Re-enter new password: Nhập lại mật khẩu Mysql mới Change the password for root? y Remove anonymous users? y Disallow root login remotely? y Remove test database and access to it? y Reload privilege tables now? y

Với MySQL 8.0

Dừng service MySQL trước tiên

sudo systemctl stop mysqld

Restart lại MySQL trong safe mode, để bỏ qua mật khẩu.

sudo mysqld_safe --skip-grant-tables

Sau khi và safe mode sẽ đơ một chút và chờ để login với root user.

mysql -uroot

Để đổi mật khẩu root thành "newpassword", nhập lệnh sau

mysql> USE MYSQL; mysql> UPDATE USER SET PASSWORD=PASSWORD["newpassword"] WHERE USER='root'; mysql> FLUSH PRIVILEGES; mysql> EXIT

Khởi động lại MySQL

sudo systemctl start mysqld

2. Tạo một user cho phép remote login.

Mặc định user: root chỉ cho phép đăng nhập qua localhost để đảm bảo tính bảo mật, và không cho phép đăng nhập từ xa, vì vậy để dễ dàng có thể login từ một tools ở client hay để test các database riêng biệt, chúng ta sẽ tạo một user riêng biệt.

Nếu bạn làm nhiều project sử dụng các phiên bản MySQL khác nhau, có thể bạn sẽ nghĩ đến cách chuyển đổi giữa các phiên bản MySQL mỗi khi làm việc với project sử dụng phiên bản MySQL khác. Tuy nhiên, điều này khá bất tiện. Bài viết này sẽ giúp bạn giải quyết vấn đề đó.

Các bạn có thể xem thêm Hướng dẫn cài đặt nhiều phiên bản PHP chạy đồng thời với Apache trên Ubuntu.

Trong bài viết này, giả định chúng ta cần sử dụng MySQL 5.6 và MySQL 5.7 trên cùng server, và phiên bản MySQL 5.7 được sử dụng nhiều hơn sẽ được chọn làm phiên bản chính. Chúng ta sẽ cài đặt MySQL 5.7 trước. Sau đó, sử dụng Docker để cài đặt phiên bản MySQL 5.6.

Cài đặt MySQL 5.7

Chạy các lệnh sau để cài đặt mysql 5.7:

sudo apt-get update
sudo apt-get install mysql-server-5.7 mysql-server-core-5.7 mysql-client-5.7 mysql-client-core-5.7

Lúc này, MySQL 5.7 được cài đặt và chạy ở port 3306 [port mặc định].

Cài đặt Docker

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

curl -sSL //get.docker.com/ | sh

Cài đặt MySQL 5.6

Chạy lệnh sau để cài đặt MySQL 5.6 trong docker container.

sudo docker run --name mysql-56-container -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=rootpassword -d mysql:5.6

Lưu ý: rootpassword là password của user root, có thể thay đổi tuỳ ý.

Container này chứa MySQL 5.6 được cài đặt với port 3306. Nhưng máy chủ sẽ sử dụng port 3310 để chuyển tiếp.

8. Câu lệnh mysql_secure_installation cho phép bạn thiết lập bảo mật cho MySQL [cài đặt mật khẩu cho tài khoản root, xóa tài khoản vô danh [anonymous users], không cho phép tài khoản root đăng nhập trực tiếp ]

Chủ Đề