Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách cài đặt MySQL 8 trên Ubuntu

Hướng dẫn này cung cấp tất cả các bước cần thiết để cài đặt MySQL 8 trên Ubuntu 18.04 LTS. Các bước tương tự có thể được thực hiện cho các phiên bản Ubuntu khác.

Ghi chú :Để làm theo bài đăng này, bạn phải gỡ bỏ hoàn toàn cài đặt trước của máy chủ MySQL được cài đặt bằng trình cài đặt nếu nó đã được cài đặt trên hệ thống. Bạn có thể làm theo Cách loại bỏ hoàn toàn MySQL khỏi Ubuntu để xóa hoàn toàn cài đặt trước đó được thực hiện bằng trình cài đặt.

Bạn cũng có thể quan tâm đến các hướng dẫn cụ thể về MySQL khác bao gồm Cách cài đặt MySQL 8 trên Windows , và Tìm hiểu các truy vấn SQL cơ bản bằng MySQL.

Bước 1 - Tải xuống MySQL APT Repository

Kể từ MySQL 8 không có trong kho lưu trữ chính thức của Ubuntu 18.04 , chúng tôi phải tải xuống gói Debian của nó . Phiên bản chính thức hiện có của MySQL trên Ubuntu 18.04 5.7.26 . Sử dụng lệnh được đề cập bên dưới để tải xuống kho lưu trữ APT mới nhất.

# Download MySQL APT Repository
wget –c https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb

Nó sẽ tải xuống gói Debian chính thức để cài đặt MySQL 8.

Bước 2 - Cài đặt Kho lưu trữ MySQL

Sử dụng lệnh được đề cập bên dưới để bắt đầu cài đặt kho lưu trữ MySQL bằng cách sử dụng kho lưu trữ do chúng tôi tải xuống ở bước trước.

sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb

Nó sẽ yêu cầu chọn từ các tùy chọn có sẵn như trong Hình 1. Giữ tùy chọn mặc định được chọn và nhấn phím Enter để bắt đầu cài đặt.

Hình 1

Trên màn hình tiếp theo, trình cài đặt sẽ yêu cầu chọn phiên bản MySQL sẽ được cài đặt như trong Hình 2. Giữ mysql-8 đã chọn và nhấn phím Enter.

Hình 2

Nó sẽ hiển thị màn hình đầu tiên với phiên bản MySQL đã chọn. Bây giờ nhấn phím mũi tên xuống và phím mũi tên tiếp theo để di chuyển đến các tùy chọn OK như trong Hình 3.

Hình 3

Nhấn phím Enter để bắt đầu cài đặt. Nó sẽ hiển thị các thông báo được đề cập bên dưới sau khi hoàn tất cài đặt.

bravo@pc1:/setups/database$ sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
Selecting previously unselected package mysql-apt-config.
(Reading database ... 200223 files and directories currently installed.)
Preparing to unpack mysql-apt-config_0.8.13-1_all.deb ...
Unpacking mysql-apt-config (0.8.13-1) ...
Setting up mysql-apt-config (0.8.13-1) ...
Warning: apt-key should not be used in scripts (called from postinst maintainerscript of the package mysql-apt-config)

Bước 3 - Làm mới Kho lưu trữ Hệ thống

Bây giờ hãy làm mới kho lưu trữ hệ thống bằng lệnh như được đề cập bên dưới.

sudo apt-get update

# It must show MySQL 8 repos
bravo@pc1:/setups/database$ sudo apt-get update
Hit:1 http://repo.mysql.com/apt/ubuntu bionic InRelease
Hit:2 http://in.archive.ubuntu.com/ubuntu bionic InRelease
Hit:3 http://in.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:4 http://in.archive.ubuntu.com/ubuntu bionic-backports InRelease
Hit:5 http://security.ubuntu.com/ubuntu bionic-security InRelease
Get:6 http://repo.mysql.com/apt/ubuntu bionic/mysql-8.0 Sources [962 B]
Get:7 http://repo.mysql.com/apt/ubuntu bionic/mysql-8.0 i386 Packages [7,472 B]
Get:8 http://repo.mysql.com/apt/ubuntu bionic/mysql-8.0 amd64 Packages [7,463 B]
Fetched 15.9 kB in 3s (5,556 B/s)
Reading package lists... Done

Nó sẽ làm mới bộ đệm hệ thống để nhận cập nhật về các phiên bản mới nhất của các gói có sẵn.

Bước 4 - Cài đặt MySQL Server

Sau khi cập nhật bộ đệm hệ thống, chúng tôi có thể bắt đầu cài đặt máy chủ và máy khách MySQL bằng lệnh như được đề cập bên dưới.

# Install MySQL Server 8
sudo apt-get install mysql-server mysql-client

Nhấn Y để xác nhận và tiếp tục cài đặt. Với điều này, MySQL được cài đặt như chúng ta làm với gói mặc định có sẵn trên kho lưu trữ Ubuntu. Quá trình cài đặt cũng sẽ yêu cầu chọn root mật khẩu và plugin mật khẩu mặc định như được hiển thị trong Hình 4, 5 và 6.

Hình 4

Hình 5

Hình 6

Bước 5 - Cài đặt MySQL an toàn

Chúng tôi cũng phải bảo mật cài đặt bằng lệnh như được đề cập bên dưới.

sudo mysql_secure_installation

Nó sẽ yêu cầu đặt mật khẩu gốc và một số câu hỏi bảo mật. Các bước hoàn chỉnh do tôi làm theo như hình dưới đây.

bravo@pc1:/setups/database$ sudo mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root:

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: y

There are three levels of password validation policy:

LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
Using existing password for root.

Estimated strength of the password: 25
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n

... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.

- Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!
bravo@pc1:/setups/database$

Các bước trên loại bỏ cơ sở dữ liệu thử nghiệm và người dùng ẩn danh. Nó cũng không cho phép đăng nhập từ xa để đảm bảo rằng máy chủ có thể truy cập cục bộ bằng cách sử dụng 127.0.0.1 hoặc localhost .

Sử dụng lệnh được đề cập bên dưới để kiểm tra xem máy chủ MySQL có đang chạy hay không.

bravo@pc1:/setups/database$ systemctl status mysql
mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-08-15 10:40:47 IST; 4min 45s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 28669 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 28708 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 4915)
CGroup: /system.slice/mysql.service
└─28708 /usr/sbin/mysqld

Aug 15 10:40:45 bravo systemd[1]: Starting MySQL Community Server...
Aug 15 10:40:47 bravo systemd[1]: Started MySQL Community Server.

Bước 6 - Kiểm tra phiên bản và quyền truy cập

Kiểm tra phiên bản của máy chủ do chúng tôi cài đặt và cũng đảm bảo rằng máy chủ có thể truy cập được bằng mật khẩu gốc do chúng tôi định cấu hình.

# Check version
sudo mysql --version
mysql Ver 8.0.17 for Linux on x86_64 (MySQL Community Server - GPL)

# Login
sudo mysql -u root -p

Bước 7 - Các lệnh quan trọng

Phần này hiển thị một số lệnh quan trọng để bắt đầu, dừng và khởi động lại máy chủ.

# Check server status
sudo service mysql status

# Stop server
sudo service mysql stop

# Start server
sudo service mysql start

# Restart server
sudo service mysql restart

Bước 8 - Sử dụng Plugin mật khẩu

Trong trường hợp bạn đã chọn sử dụng tùy chọn plugin mật khẩu cho khả năng tương thích của từ khóa với phiên bản 5.7, bạn có thể phải kết nối với Máy chủ MySQL bằng tài khoản có mật khẩu bằng cách sử dụng tùy chọn mysql_native_password. Chúng tôi có thể thay đổi hành vi của tài khoản đã chọn để sử dụng mật khẩu gốc bằng các lệnh như được hiển thị bên dưới.

# Login to MySQL

# Check password plugin of root user
SELECT user,authentication_string,plugin,host FROM mysql.user;

# Note the password plugin of root user
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

# Change password plugin of root user to native
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<pw>';

# Apply changes
flush privileges;

# Check password scheme of user
SELECT user,authentication_string,plugin,host FROM mysql.user;

# Note the password plugin of root user
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *E5C4F73D963132CEF9BB4PA79LA818C08BAQC300 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

# Change to new and recommended password plugin
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '<pw>';

# Apply changes
flush privileges;

# Check password scheme of user
SELECT user,authentication_string,plugin,host FROM mysql.user;

+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| root | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+

Đây là cách chúng tôi có thể cài đặt phiên bản mới nhất của máy chủ MySQL, tức là MySQL 8 trên Ubuntu 18.04 LTS.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giải thích về khung tính khả dụng cao của MySQL - Phần III:Tình huống thất bại

  2. Khi nào sử dụng STRAIGHT_JOIN với MySQL

  3. CHÈN ... TRÊN KHÓA DUPLICATE (không làm gì cả)

  4. Tôi có thể sử dụng lại một trường được tính toán trong một truy vấn CHỌN không?

  5. MySql:MyISAM so với Inno DB!