GNU/Linux >> Belajar Linux >  >> Linux

Instal Server MySQL di sistem operasi Ubuntu

MySQL adalah database relasional open-source yang gratis dan banyak digunakan. Ini adalah pilihan yang baik jika Anda tahu bahwa Anda memerlukan database tetapi tidak tahu banyak tentang semua opsi yang tersedia.

Artikel ini menjelaskan tentang instalasi dasar server database MySQL pada sistem operasi Ubuntu. Anda mungkin perlu menginstal paket lain untuk membiarkan aplikasi menggunakan MySQL, seperti ekstensi untuk PHP. Periksa dokumentasi aplikasi Anda untuk detailnya.

Instal MySQL

Instal server MySQL dengan menggunakan manajer paket sistem operasi Ubuntu:

sudo apt-get update
sudo apt-get install mysql-server

Pemasang menginstal MySQL dan semua dependensi.

Jika utilitas instalasi aman tidak diluncurkan secara otomatis setelah instalasi selesai, masukkan perintah berikut:

sudo mysql_secure_installation utility

Utilitas ini meminta Anda untuk menentukan kata sandi root mysql dan opsi terkait keamanan lainnya, termasuk menghapus akses jarak jauh ke pengguna root dan menyetel kata sandi root.

Izinkan akses jarak jauh

Jika Anda mengaktifkan iptables dan ingin terhubung ke database MySQL dari komputer lain, Anda harus membuka port di firewall server Anda (port defaultnya adalah 3306). Anda tidak perlu melakukan ini jika aplikasi yang menggunakan MySQL berjalan di server yang sama.

Jalankan perintah berikut untuk mengizinkan akses jarak jauh ke server mysql:

sudo ufw enable
sudo ufw allow mysql

Mulai layanan MySQL

Setelah instalasi selesai, Anda dapat memulai layanan database dengan menjalankan perintah berikut. Jika layanan sudah dimulai, sebuah pesan memberitahu Anda bahwa layanan sudah berjalan:

sudo systemctl start mysql

Luncurkan saat reboot

Untuk memastikan bahwa server database diluncurkan setelah reboot, jalankan perintah berikut:

sudo systemctl enable mysql

Konfigurasikan antarmuka

MySQL, secara default tidak lagi terikat ( mendengarkan ) antarmuka yang dapat diakses dari jarak jauh. Edit direktif "bind-address" di /etc/mysql/mysql.conf.d/mysqld.cnf:

bind-address		= 127.0.0.1 ( The default. )
bind-address		= XXX.XXX.XXX.XXX ( The ip address of your Public Net interface. )
bind-address		= ZZZ.ZZZ.ZZZ.ZZZ ( The ip address of your Service Net interface. )
bind-address		= 0.0.0.0 ( All ip addresses. )

Mulai ulang layanan mysql.

sudo systemctl restart mysql

Mulai shell mysql

Ada lebih dari satu cara untuk bekerja dengan server MySQL, tetapi artikel ini berfokus pada pendekatan yang paling dasar dan kompatibel, mysql cangkang.

  1. Pada prompt perintah, jalankan perintah berikut untuk meluncurkan mysql shell dan masukkan sebagai pengguna root:

    /usr/bin/mysql -u root -p
    
  2. Saat Anda dimintai sandi, masukkan sandi yang Anda setel pada waktu penginstalan, atau jika Anda belum menyetelnya, tekan Enter untuk mengirimkan tanpa kata sandi.

    Berikut mysql shell prompt akan muncul:

    mysql>
    

Setel kata sandi root

Jika Anda login dengan memasukkan kata sandi kosong, atau jika Anda ingin mengubah kata sandi root yang Anda atur, Anda dapat membuat atau mengubah kata sandinya.

  1. Untuk versi sebelum MySQL 5.7, masukkan perintah berikut di mysql shell, ganti password dengan kata sandi baru Anda:

    UPDATE mysql.user SET Password = PASSWORD('password') WHERE User = 'root';
    

    Untuk versi MySQL 5.7 dan yang lebih baru, masukkan perintah berikut di mysql shell, menggantikan password dengan kata sandi baru Anda:

    UPDATE mysql.user SET authentication_string = PASSWORD('password') WHERE User = 'root';
    
  2. Agar perubahan diterapkan, muat ulang informasi pengguna yang disimpan dengan perintah berikut:

    FLUSH PRIVILEGES;
    

    Catatan :Kami menggunakan huruf besar semua untuk perintah SQL. Jika Anda mengetik perintah tersebut dalam huruf kecil, itu akan berfungsi. Secara konvensional, perintah ditulis dalam huruf kapital semua untuk membuatnya menonjol dari nama bidang dan data lain yang sedang dimanipulasi.

Jika nanti Anda perlu mengatur ulang kata sandi root, lihat Mengatur ulang kata sandi root MySQL.

Melihat pengguna

MySQL menyimpan informasi pengguna dalam databasenya sendiri. Nama databasenya adalah mysql . Di dalam basis data itu, informasi pengguna ada dalam sebuah tabel, kumpulan data, bernama pengguna . Jika Anda ingin melihat pengguna apa yang diatur di tabel MySQLuser, jalankan perintah berikut:

SELECT User, Host, authentication_string FROM mysql.user;

Daftar berikut menjelaskan bagian-bagian dari perintah itu:

  • PILIH memberi tahu MySQL bahwa Anda meminta data.
  • Pengguna , Tuan Rumah , authentication_string memberi tahu MySQL bidang apa yang ingin Anda lihat. Bidang adalah kategori untuk data dalam tabel. Dalam hal ini, Anda mencari nama pengguna, host yang terkait dengan nama pengguna, dan entri kata sandi terenkripsi.
  • DARI mysql.user " memberitahu MySQL untuk mendapatkan data dari mysql database dan pengguna tabel.
  • Sebuah titik koma (;) mengakhiri perintah.

Catatan :Semua kueri SQL diakhiri dengan titik koma. MySQL tidak memproses kueri sampai Anda mengetik titik koma.

Host pengguna

Contoh berikut adalah output untuk kueri sebelumnya:

SELECT User, Host, authentication_string FROM mysql.user;
+------------------+-----------+-------------------------------------------+
| User             | Host      | authentication_string                     |
+------------------+-----------+-------------------------------------------+
| root             | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
| mysql.session    | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys        | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| debian-sys-maint | localhost | *27E7CA2445405AB10C656AFD0F86AF76CCC57692 |
+------------------+-----------+-------------------------------------------+

Pengguna dikaitkan dengan sebuah host, khususnya, host dari mana mereka terhubung. Pengguna root dalam contoh ini didefinisikan untuk localhost , untuk alamat IP localhost , dan nama host server. Anda biasanya perlu menetapkan pengguna hanya untuk satu host, host yang biasanya Anda hubungkan.

Jika Anda menjalankan aplikasi di komputer yang sama dengan server MySQL, host yang terhubung secara default adalah localhost . Setiap pengguna baru yang Anda buat harus memiliki localhost di host their mereka lapangan.

Jika aplikasi Anda terhubung dari jarak jauh, host entri yang dicari MySQL adalah alamat IP atau nama host DNS dari komputer jarak jauh (yang berasal dari klien).

Pengguna anonim

Dalam output contoh, satu entri memiliki nilai host tetapi tidak ada nama pengguna atau sandi. Itu adalah pengguna anonim . Saat klien terhubung tanpa nama pengguna yang ditentukan, klien mencoba terhubung sebagai pengguna anonim.

Anda biasanya tidak menginginkan pengguna anonim, tetapi beberapa instalasi MySQL menyertakannya secara default. Jika Anda melihatnya, Anda harus menghapus pengguna tersebut (lihat nama pengguna dengan tanda kutip kosong, seperti ' ‘) atau tetapkan kata sandi untuknya.

Buat database

Ada perbedaan antara server database dan database , bahkan istilah pemikiran sering digunakan secara bergantian. MySQL adalah server basis data, artinya ia melacak basis data dan mengontrol akses ke sana. Basis data menyimpan data, dan merupakan basis data yang coba diakses aplikasi saat berinteraksi dengan MySQL.

Beberapa aplikasi membuat database sebagai bagian dari proses penyiapannya, tetapi aplikasi lain mengharuskan Anda untuk membuat database sendiri dan memberi tahu aplikasi tentang hal itu.

Untuk membuat database, login ke mysql shell dan jalankan perintah berikut, ganti demodb dengan nama database yang ingin Anda buat:

CREATE DATABASE demodb;

Setelah database dibuat, Anda dapat memverifikasi pembuatannya dengan menjalankan kueri untuk membuat daftar semua database. Contoh berikut menunjukkan kueri dan contoh keluaran:

SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| demodb             |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)

Tambahkan pengguna database

Ketika aplikasi terhubung ke database menggunakan pengguna root, mereka biasanya memiliki lebih banyak hak istimewa daripada yang mereka butuhkan. Anda dapat menambahkan pengguna yang dapat digunakan aplikasi untuk terhubung ke database baru. Dalam contoh berikut, pengguna bernama demouser dibuat.

  1. Untuk membuat pengguna baru, jalankan perintah berikut di mysql cangkang:

    INSERT INTO mysql.user (User,Host,authentication_string,ssl_cipher,x509_issuer,x509_subject)
    VALUES('demouser','localhost',PASSWORD('demopassword'),'','','');
    
  2. Saat Anda membuat perubahan pada pengguna tabel di mysql database, beri tahuMySQL untuk membaca perubahan dengan menghapus hak istimewa, sebagai berikut:

    FLUSH PRIVILEGES;
    
  3. Verifikasi bahwa pengguna dibuat dengan menjalankan kueri SELECT lagi:

    SELECT User, Host, authentication_string FROM mysql.user;
    
    +------------------+-----------+-------------------------------------------+
    | User             | Host      | Password                                  |
    +------------------+-----------+-------------------------------------------+
    | root             | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
    | mysql.session    | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
    | mysql.sys        | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
    | debian-sys-maint | localhost | *27E7CA2445405AB10C656AFD0F86AF76CCC57692 |
    | demouser         | localhost | *0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6 |
    +------------------+-----------+-------------------------------------------+
    

Berikan izin pengguna basis data

Tepat setelah Anda membuat pengguna baru, ia tidak memiliki hak istimewa. Pengguna dapat masuk, tetapi tidak dapat digunakan untuk membuat perubahan basis data apa pun.

  1. Berikan izin penuh kepada pengguna untuk database baru Anda dengan menjalankan perintah berikut:

    GRANT ALL PRIVILEGES ON demodb.* to demouser@localhost;
    
  2. Siram hak istimewa untuk membuat perubahan resmi dengan menjalankan perintah berikut:

    FLUSH PRIVILEGES;
    
  3. Untuk memverifikasi bahwa hak istimewa tersebut telah disetel, jalankan perintah berikut:

    SHOW GRANTS FOR 'demouser'@'localhost';
    2 rows in set (0.00 sec)
    

    MySQL mengembalikan perintah yang diperlukan untuk mereproduksi izin pengguna itu jika Anda ingin membangun kembali server. USAGE on \*.\* berarti pengguna tidak mendapatkan hak istimewa apa pun secara default. Perintah itu ditimpa oleh perintah kedua, yang merupakan hibah yang Anda jalankan untuk database baru.

    +-----------------------------------------------------------------------------------------------------------------+
    | Grants for demouser@localhost                                                                                   |
    +-----------------------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' |
    | GRANT ALL PRIVILEGES ON `demodb`.* TO 'demouser'@'localhost'                                                    |
    +-----------------------------------------------------------------------------------------------------------------+
    2 rows in set (0.00 sec)
    

Ringkasan

Jika Anda baru saja membuat database dan pengguna, Anda selesai. Konsep yang dibahas di sini akan memberi Anda awal yang kuat untuk mempelajari lebih lanjut.

  • Konfigurasi server MySQL pada sistem operasi Ubuntu
  • Setel ulang kata sandi root MySQL

Linux
  1. Cara Menginstal Server MySQL di Ubuntu 16.04

  2. Cara Menginstal Server MySQL di Ubuntu 17.04

  3. Cara Menginstal MySQL di Ubuntu 16.04

  1. Cara Menginstal Server Web Apache di Ubuntu

  2. Cara Menginstal MySQL di Ubuntu 18.04

  3. Cara Menginstal MySQL di Ubuntu 22.04

  1. Konfigurasikan server MySQL pada sistem operasi Ubuntu

  2. Instal IMAP untuk PHP 7.1 di sistem operasi Ubuntu

  3. Jadwalkan reboot di sistem operasi Ubuntu