Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Menginstal MySQL 8 di Ubuntu 20.04 LTS

MySQL adalah salah satu sistem database relasional populer yang digunakan sebagai penyimpanan data situs web dan aplikasi web. Tutorial ini menyediakan semua langkah yang diperlukan untuk menginstal MySQL 8 di Ubuntu 20.04 LTS. Langkah-langkahnya harus sama pada versi lain dari sistem Ubuntu dan Linux. Anda juga dapat mengikuti Cara Menginstal MySQL 8 di Ubuntu 18.04 LTS. Anda mungkin juga tertarik dengan tutorial khusus MySQL lainnya termasuk Cara Menginstal MySQL 8 di Windows dan Mempelajari Kueri SQL Dasar Menggunakan MySQL.

Prasyarat

Tutorial ini mengasumsikan bahwa Anda telah menginstal versi desktop atau server Ubuntu 20.04 LTS baik untuk penggunaan lokal atau produksi. Anda dapat mengikuti Instal Ubuntu 20.04 LTS Desktop, Instal Ubuntu 20.04 LTS Di Windows Menggunakan VMware, dan Putar Server Ubuntu 20.04 LTS Di Amazon EC2 untuk menginstal Ubuntu 20.04 LTS. Ini juga mengasumsikan bahwa Anda memiliki hak akses root atau pengguna biasa dengan hak istimewa sudo.

Instal MySQL

Bagian ini menyediakan perintah yang diperlukan untuk menginstal MySQL Database Server versi 8 di Ubuntu 20.04 LTS.

# Install MySQL Server 8
sudo apt install mysql-server

# Output
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libaio1 libcgi-fast-perl libcgi-pm-perl libevent-core-2.1-7 libfcgi-perl libhtml-template-perl libmecab2 mecab-ipadic
mecab-ipadic-utf8 mecab-utils mysql-client-8.0 mysql-client-core-8.0 mysql-server-8.0 mysql-server-core-8.0
---
---
Setting up mysql-server-8.0 (8.0.20-0ubuntu0.20.04.1) ...
update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Renaming removed key_buffer and myisam-recover options (if present)
mysqld will log errors to /var/log/mysql/error.log
mysqld is running as pid 63195
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /lib/systemd/system/mysql.service.
Setting up mysql-server (8.0.20-0ubuntu0.20.04.1) ...
Processing triggers for systemd (245.4-4ubuntu3) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9) ...

Saya telah menyoroti paket MySQL yang diinstal setelah menjalankan perintah instalasi. Itu menginstal inti MySQL, server, dan paket klien. Juga, server MySQL versi 8.0.20 telah diinstal saat menulis tutorial ini.

Konfigurasi dan Amankan Instalasi MySQL

Kita juga harus mengkonfigurasi dan mengamankan instalasi menggunakan perintah mysql_secure_installation seperti yang ditunjukkan di bawah ini. Ini akan meminta untuk mengatur kata sandi root dan beberapa pertanyaan keamanan.

Langkah 1 - Pemasangan Aman - Jalankan perintah untuk memulai konfigurasi MySQL.

# Secure MySQL
sudo mysql_secure_installation

Langkah 2 - Validator Kata Sandi - Ia meminta untuk mengkonfirmasi penggunaan validator kata sandi untuk memvalidasi kata sandi. Ini juga akan menunjukkan kekuatan kata sandi saat memberikan kata sandi.

# Password Validator Component
Press y|Y for Yes, any other key for No: y

Jika kami memilih Tidak, itu tidak akan memeriksa kekuatan kata sandi root MySQL dan pengguna lain saat menambahkannya. Kita harus menggunakan kata sandi yang kuat untuk pengguna MySQL, oleh karena itu disarankan untuk menggunakan Komponen Validator Kata Sandi.

Langkah 3 - Tingkat Validasi Kata Sandi - Perintah instalasi aman menanyakan tingkat validasi kata sandi dan menyediakan opsi untuk memilih di antara Rendah(0), Sedang(1), dan Kuat(2). Disarankan untuk menggunakan setidaknya Tingkat Sedang untuk memiliki kata sandi yang kuat dari semua pengguna MySQL. Aturan validasi semua level adalah seperti yang tercantum di bawah ini.

Rendah - Ini mengharapkan kata sandi yang memiliki setidaknya 8 karakter tanpa batasan karakter.

Sedang - Tingkat Menengah mengharapkan sandi yang memiliki minimal 8 karakter dan memungkinkan karakter numerik, huruf besar, huruf kecil, dan khusus.

Kuat - Tingkat Kuat mengharapkan kata sandi yang memiliki setidaknya 8 karakter dan memungkinkan karakter numerik, huruf besar, huruf kecil, dan khusus. Ini juga memungkinkan file kamus.

# Password Validation Level
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

Langkah 4 - Kata Sandi Akar - Plugin otentikasi default yang digunakan oleh MySQL untuk pengguna root adalah auth_socket .

# Password Prompt
New password:<password>
Re-enter new password:<repeat password>

Jika Anda telah memilih untuk menggunakan Validator Kata Sandi, itu juga akan menunjukkan kekuatan kata sandi dari kata sandi root dan mengonfirmasi untuk menggunakan kata sandi yang diberikan seperti yang ditunjukkan di bawah ini.

# Confirm Password
Estimated strength of the password: 80
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

Jika kami memilih Tidak, itu akan meminta kata sandi lagi.

Langkah 5 - Hapus Pengguna Anonim - Setelah memberikan kata sandi, proses instalasi aman meminta untuk menghapus pengguna anonim. MySQL menambahkan pengguna anonim saat menginstalnya untuk tujuan pengujian dan memungkinkan siapa saja untuk masuk tanpa kata sandi. Disarankan untuk menghapus pengguna anonim.

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

Langkah 6 - Larang Login Jarak Jauh - Proses instalasi aman juga meminta konfirmasi apakah login jarak jauh diperbolehkan untuk pengguna root. Kita harus memilih opsi y untuk membatasi pengguna root ke localhost. Kami selalu dapat menambahkan pengguna tambahan untuk mengizinkan login jarak jauh saat diperlukan.

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

Langkah 7 - Hapus Basis Data Pengujian - MySQL membuat database pengujian saat menginstalnya. Anda dapat menyimpan database pengujian untuk tujuan analisis dan kemudian menghapusnya.

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

Langkah 8 - Muat Ulang Tabel Hak Istimewa - Terakhir, instalasi aman meminta untuk memuat ulang tabel hak istimewa untuk segera menerapkan perubahan.

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

Langkah-langkah lengkap yang saya ikuti pada instalasi MySQL yang baru adalah seperti yang ditunjukkan di bawah ini.

# Secure MySQL
sudo mysql_secure_installation

# Configuration
Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

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
Please set the password for root here.

New password:

Re-enter new password:

Estimated strength of the password: 50
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
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!

Langkah-langkah di atas menghapus database pengujian dan pengguna anonim. Ini juga melarang login jarak jauh untuk memastikan bahwa server dapat diakses secara lokal baik menggunakan 127.0.0.1 atau localhost .

Verifikasi Pemasangan

Kami dapat memverifikasi instalasi server MySQL menggunakan perintah seperti yang ditunjukkan di bawah ini untuk memeriksa apakah server MySQL berjalan.

# Check MySQL Status
systemctl status mysql

# Output mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-05 19:42:35 IST; 9min ago Main PID: 63433 (mysqld) Status: "Server is operational" Tasks: 40 (limit: 4624) Memory: 319.2M CGroup: /system.slice/mysql.service └─63433 /usr/sbin/mysqld Jun 05 19:42:35 bravo systemd[1]: Starting MySQL Community Server... Jun 05 19:42:35 bravo systemd[1]: Started MySQL Community Server.

Juga, periksa versi server yang kami instal dan pastikan server dapat diakses menggunakan kata sandi root yang dikonfigurasi oleh kami.

# Check version
sudo mysql --version

# Output
mysql Ver 8.0.20-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

# Login
sudo mysql
# OR
sudo mysql -u root

# Quit Database
exit

Kita cukup login ke MySQL seperti gambar di atas, bahkan kita sudah memberikan password user root sekaligus mengamankan server MySQL. MySQL secara langsung mengizinkan pengguna root karena menggunakan auth_socket plugin untuk pengguna root yang tidak memerlukan kata sandi apa pun.

Plugin Kata Sandi Pengguna Root

Kita dapat mengubah plugin kata sandi dari pengguna root ke caching_sha2_password (lebih disukai) atau mysql_native_password untuk mengizinkan aplikasi lain termasuk phpMyAdmin untuk masuk ke server MySQL menggunakan pengguna root. Itu dapat dilakukan dengan menggunakan perintah seperti yang ditunjukkan di bawah ini.

# Login to MySQL
sudo mysql

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

# Note the password plugin of root user
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| debian-sys-maint | $A$005$[DA
NP9|K1zAmHe`LVwrhII7zBo5b5xUoPnvOLuCa9CSJVqCn7W1rzOCCyZD | caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| root | | auth_socket | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+

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

# Apply changes
flush privileges;

# Check password scheme 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 | $A$005$ZtYD-ppbn>iO�"MHhl/0TXh9Qo3xYdWK3ThKPmDB6r.QhVlZY1dcT1LWH0A | caching_sha2_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

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

# Apply changes
flush privileges;

# Check password scheme 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 | *E5C4F73D963032BEF9BB4CA799A848C08BADC343 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

# Quit Database
exit

Pengguna Tambahan

Kita dapat menambahkan pengguna tambahan menggunakan perintah CREATE USER seperti yang ditunjukkan di bawah ini.

# Login to MySQL - auth_socket
sudo mysql

# OR - Login to MySQL - caching_sha2_password
sudo mysql -u root -p

# Add User
CREATE USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '<pw>';

# Apply changes
flush privileges;

# Quit Database
exit

Anda juga dapat mengikuti Pelajari Kueri SQL Dasar Menggunakan MySQL untuk mempelajari kueri SQL dasar.

Perintah Penting

Bagian ini menunjukkan beberapa perintah penting untuk memulai, menghentikan, dan memulai ulang server.

# 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
 

Ringkasan

Tutorial ini memberikan semua langkah yang diperlukan untuk menginstal versi terbaru dari server MySQL yaitu MySQL 8 di Ubuntu 20.04 LTS. Itu juga menyediakan langkah-langkah konfigurasi untuk lebih mengamankan instalasi server MySQL.

Setelah menyelesaikan instalasi, Anda juga dapat mengikuti Belajar Query SQL Dasar Menggunakan MySQL, Panduan Merancang Database Untuk Manajemen Blog Di MySQL, dan Panduan Merancang Database Untuk Keranjang Belanja Online Di MySQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menggandakan Tabel di MySQL

  2. Temukan gaji tertinggi ke-2 dengan cara terbaik

  3. xampp MySQL tidak dimulai

  4. Bagaimana cara memasukkan bingkai data panda melalui mysqldb ke dalam database?

  5. Kolom tidak dikenal dalam kesalahan 'daftar bidang' pada permintaan Pembaruan MySQL