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

Menginstal dan Mengonfigurasi MySQL di Ubuntu 20.04

Pengguna Ubuntu memiliki pilihan antara dua Sistem Manajemen Basis Data Relasional yang andal (RDBMS),MySQL danMariaDB . MySQL memiliki keunggulan lama dalam popularitas, tetapi minat terhadap MariaDB meningkat karena keunggulan kinerja dan fitur tambahannya. Panduan ini membandingkan dua sistem database dan memberikan instruksi tentang cara menginstal dan menggunakan MySQL di Ubuntu 20.04.

Apa itu MySQL?

MySQL RDBMS adalah salah satu aplikasi open source yang paling populer. Ini adalah bagian dari LAMP Stack , yang merupakan landasan dari banyak sistem Ubuntu. Tumpukan ini terdiri dari Linux, server web Apache, RDBMS MySQL, dan bahasa pemrograman PHP. Aplikasi ini bekerja sama untuk mendukung aplikasi web, pengembangan perangkat lunak, dan aktivitas khusus seperti ilmu data. Penggunaan utama MySQL adalah dalam konfigurasi server tunggal berukuran kecil hingga menengah.

Kueri MySQL ditulis dalam Bahasa Kueri Terstruktur (SQL). Sebagai database relasional, ia menyimpan dan mengatur data dalam tabel. Tabel menyusun data aktual di dalam tabel sebagai serangkaian baris, dengan setiap baris terdiri dari satu atau lebih kolom. Setiap baris mewakili entri yang berbeda dalam tabel, sementara setiap kolom berisi satu bidang data di dalam entri. Bidang data dalam tabel ini dapat dihubungkan satu sama lain, dan hubungan ini membantu menyusun dan mengatur database. Pernyataan SQL khusus mengizinkan klien untuk menambah, menghapus, memodifikasi, dan mengambil data.

MySQL dikenal dengan stabilitas dan keandalannya serta dianggap sederhana dan mudah digunakan. Ini tersedia sebagai perangkat lunak open source gratis di bawah Lisensi Publik Umum GNU. MySQL sudah tersedia untuk semua distribusi Linux serta sistem operasi lainnya. Sekarang dimiliki oleh Oracle Corporation. Oracle juga menawarkan CommercialMySQL Enterprise Edition sebagai produk kelas atas.

MySQL vs. MariaDB

Dua alternatif database open source utama, MySQL dan MariaDB, sangat mirip. Keduanya adalah produk RDBMS dan keduanya menggunakan SQL. Kedua sistem database memiliki versi gratis, dan mereka terlihat dan bertindak dengan cara yang hampir sama. Karena MariaDB awalnya bercabang dari MySQL, ini tidak mengherankan. MariaDB telah mengalami pengembangan lebih lanjut dan menampilkan banyak peningkatan baru dalam keamanan dan kinerja. Namun, dengan MySQL, banyak fitur lanjutan hanya ditemukan di Edisi Perusahaan. Berikut ringkasan persamaan dan perbedaan kedua produk tersebut:

  • MariaDB mendukung lebih banyak koneksi daripada MySQL.
  • Kedua database dapat bekerja dengan beberapa sistem penyimpanan, meskipun MariaDB menawarkan lebih banyak opsi.
  • MariaDB dapat mereplikasi data lebih cepat daripada MySQL dan memiliki kinerja keseluruhan yang lebih baik. MySQL menangani transaksi besar dengan lebih efektif, tetapi kinerja MariaDB lebih baik dalam situasi yang diskalakan.
  • MySQL mendukung beberapa fitur yang tidak dimiliki MariaDB, seperti kolom dinamis. Setiap database memiliki beberapa fitur dan peningkatan lanjutan yang tidak dimiliki database lainnya.
  • MySQL lebih tua, lebih mapan, lebih populer, dan memiliki lebih banyak dukungan komunitas. MySQL menawarkan paket dukungan berbayar yang lebih komprehensif.
  • MariaDB dan MySQL sepenuhnya kompatibel.
  • Kedua produk adalah open source, tetapi model lisensi MySQL lebih ketat.

Untuk meringkas, kedua sistem lebih dari cukup untuk sebagian besar pengguna. MariaDB menampilkan kinerja yang lebih baik, sedangkan MySQL lebih mapan dan didukung lebih baik.

Sebelum Anda Mulai

  1. Jika Anda belum melakukannya, buat akun Linode dan Compute Instance. Lihat panduan Memulai Linode dan Membuat Instans Komputasi.

  2. Ikuti panduan Menyiapkan dan Mengamankan Instans Komputasi untuk memperbarui sistem Anda. Anda mungkin juga ingin mengatur zona waktu, mengkonfigurasi nama host Anda, membuat akun pengguna terbatas, dan memperkuat akses SSH.

Catatan Langkah-langkah dalam panduan ini ditulis untuk pengguna non-root. Perintah yang memerlukan hak istimewa yang lebih tinggi diawali dengan sudo . Jika Anda tidak terbiasa dengan sudo perintah, lihat panduan Pengguna dan Grup Linux.

Cara Menginstal Server MySQL

MySQL tersedia sebagai bagian dari paket default Ubuntu, jadi tidak perlu mengedit daftar sumber. Itu dapat dengan mudah diinstal menggunakan apt , tetapi penting untuk mengamankan aplikasi dan mengedit firewall setelahnya. Instruksi ini ditujukan untuk pengguna Ubuntu, tetapi umumnya berlaku bagi mereka yang ingin menginstal MySQL pada distribusi Linux lain.

Unduh MySQL

Untuk menginstal server MySQL di Ubuntu, ikuti langkah-langkah di bawah ini:

  1. Instal aplikasi server MySQL.

    sudo apt install mysql-server
    
  2. Konfirmasikan server MySQL berjalan menggunakan systemctl memerintah. Seharusnya menampilkan status active .

    sudo systemctl status mysql
    
    mysql.service - MySQL Community Server
        Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset:>
        Active: active (running) since Thu 2021-09-09 12:24:29 UTC; 1h 44min ago

Konfigurasi Server MySQL di Linux

mysql_secure_installation utilitas adalah cara termudah untuk mengkonfigurasi aplikasi. Untuk menggunakan skrip penyiapan, ikuti langkah-langkah berikut:

  1. Luncurkan mysql_secure_installation utilitas untuk mengatur kata sandi root dan mengonfigurasi opsi default lainnya.

    sudo mysql_secure_installation
    
  2. Aplikasi menanyakan apakah akan mengaktifkan VALIDATE PASSWORD COMPONENT komponen. Jika Anda menjawab y , ia kemudian menanyakan apakah akan menyetel kekuatan sandi ke LOW , MEDIUM , atau HIGH .

    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?
  3. Pada prompt berikutnya, utilitas meminta kata sandi untuk akun root. Setel kata sandi lalu masukkan kembali.

    Please set the password for root here.
    
    New password:
    
    Re-enter new password:
  4. Pertanyaan berikut menanyakan apakah akan menghapus pengguna anonim, untuk mengizinkan root akun untuk terhubung dari jarak jauh, dan untuk menghapus test basis data. Masukkan y atau n di setiap prompt sesuai dengan preferensi Anda. test database berguna selama validasi awal, tetapi untuk alasan keamanan, yang terbaik adalah melarang root akun dari login dari jarak jauh.

    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) :
    
    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) :
    
    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
  5. Saat diminta, muat ulang privilege tabel untuk memperbarui database.

    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!
  6. (Opsional ) Untuk mengakses MySQL dari jarak jauh, pastikan lalu lintas MySQL diizinkan melalui ufw firewall. Tambahkan aturan berikut untuk membuka port 3306 di firewallnya. Aturan ini tidak boleh ditambahkan jika akses jarak jauh tidak diperlukan.

    ufw allow mysql
    
    Status: active
    
    To                         Action      From
    --                         ------      ----
    Apache Full                ALLOW       Anywhere
    OpenSSH                    ALLOW       Anywhere
    3306/tcp                   ALLOW       Anywhere
    Apache Full (v6)           ALLOW       Anywhere (v6)
    OpenSSH (v6)               ALLOW       Anywhere (v6)
    3306/tcp (v6)              ALLOW       Anywhere (v6)

Masuk ke MySQL sebagai Pengguna Root

Meskipun root pengguna memiliki akses penuh ke database MySQL, penggunaannya harus dicadangkan untuk tujuan administratif. Ini mengurangi kemungkinan menimpa bagian penting dari database secara tidak sengaja. Bahkan dalam pengaturan pengguna tunggal, akun pengguna terpisah harus dibuat untuk sebagian besar aktivitas MySQL.

Untuk mengakses server MySQL sebagai root pengguna dan buat akun pengguna baru, ikuti langkah-langkah berikut:

  1. Gunakan sudo mysql perintah untuk mengakses database. MySQL mengautentikasi pengguna root berdasarkan kredensial root mereka saat masuk secara lokal, jadi tidak diperlukan kata sandi. Atau, akses akun root menggunakan sudo mysql -u root -p , bersama dengan root kata sandi.

    sudo mysql
    
  2. MySQL menampilkan nomor rilis dan beberapa informasi tentang instalasi dan kemudian menampilkan prompt MySQL.

    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 15
    Server version: 8.0.26-0ubuntu0.20.04.2 (Ubuntu)
    ...
    mysql>
  3. Untuk memastikan MySQL beroperasi dengan benar, gunakan SHOW DATABASES perintah untuk menampilkan semua database.

    SHOW DATABASES;
    
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.01 sec)
  4. Buat pengguna baru menggunakan CREATE USER memerintah. Masukkan nama pengguna dalam format 'username'@'IP_Address' , di mana IP_Address adalah alamat IP pengguna. Jika pengguna mengakses MySQL dari Linode lokal, ganti localhost sebagai pengganti Alamat IP. Pada perintah di bawah ini, ganti mysqluser dan password dengan nama pengguna dan sandi yang sebenarnya.

    Catatan MySQL menawarkan beberapa mekanisme otentikasi yang berbeda. caching_sha2_password metode ini direkomendasikan untuk pengguna yang ingin masuk menggunakan kata sandi dan digunakan di sini. Namun, aplikasi lama tertentu mungkin tidak dapat mengautentikasi dengan benar dengan cara ini. Dalam hal ini, mysql_native_password harus digunakan sebagai gantinya. Replikasi sumber-replika MySQL mungkin memerlukan sha256_password metode.
    CREATE USER 'mysqluser'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
    
  5. Berikan akses ke pengguna baru menggunakan GRANT PRIVILEGE perintah, menggunakan format GRANT list of privileges ON table TO 'username'@'IP_Address'; . Beberapa hak istimewa yang lebih umum termasuk CREATE , ALTER , DROP , INSERT , UPDATE , DELETE , dan SELECT . Untuk menerapkan hak istimewa ini ke semua database, gunakan variabel wildcard *.* . Perintah berikut memberikan hak non-administratif umum pada semua database ke mysqluser .

    GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD ON *.* TO 'mysqluser'@'localhost' WITH GRANT OPTION;
    
  6. Untuk keluar dari prompt MySQL, ketik exit .

    exit
    

Cara Menggunakan MySQL

MySQL menggunakan sintaks SQL standar untuk semua perintahnya. Langkah-langkah di bagian ini menunjukkan bagaimana melakukan tugas-tugas dasar di MySQL, seperti membuat database, tabel, dan menambahkan data. Untuk informasi lengkap tentang cara menggunakan MySQL, lihat Panduan Referensi MySQL. Untuk pengenalan singkat namun menyeluruh, coba tutorial MySQL.

Buat Database

  1. Untuk membuat database, login ke MySQL menggunakan akun dengan kode CREATE hak istimewa. Ganti mysqlusername dengan nama pengguna yang Anda buat.

    mysql -u mysqlusername -p
    
  2. Buat database baru menggunakan CREATE DATABASE memerintah. Ganti newdatabasename dengan nama yang diinginkan untuk database Anda.

    CREATE DATABASE newdatabasename;
    
    Query OK, 1 row affected (0.00 sec)
  3. Untuk mengkonfirmasi database baru telah dibuat dengan benar, gunakan SHOW DATABASES .

    SHOW DATABASES;
    
    +--------------------+
    | Database           |
    +--------------------+
    ...
    | newdatabasename   |
    ...
    +--------------------+
    5 rows in set (0.00 sec)
  4. Tunjukkan database yang ingin Anda gunakan menggunakan USE memerintah. Ganti newdatabasename dengan nama database yang baru saja Anda buat.

    USE newdatabasename;
    
    Database changed
    Catatan Anda juga dapat menggunakan USE perintah ketika Anda memiliki lebih dari satu database dan Anda ingin beralih di antara mereka.
  5. Untuk mengetahui nama database saat ini, gunakan SELECT DATABASE memerintah. Outputnya menampilkan nama database.

    SELECT DATABASE();
    
    +------------------+
    | DATABASE()       |
    +------------------+
    | newdatabasename |
    +------------------+

Buat Tabel

Pada titik ini, database, newdatabasename tidak memiliki tabel, jadi belum memungkinkan untuk menyimpan data apa pun di dalamnya. Untuk menentukan tabel, gunakan CREATE TABLE memerintah. Bersamaan dengan nama tabel, perintah ini membutuhkan nama dan tipe data dari setiap field. Tipe data mencirikan data yang disimpan di lapangan. Misalnya, tipe data dapat berupa string dengan panjang variabel, yang dikenal sebagai VARCHAR . Untuk daftar lengkap tipe data, lihat dokumentasi MySQL. Beberapa tipe data yang lebih umum adalah sebagai berikut.

  • INT: Ini dapat berisi nilai antara -2147483648 dan 2147483647 . Jika ditentukan sebagai UNSIGNED , itu dapat menyimpan nilai antara 0 dan 4294967295 .
  • KECIL: Memegang nilai integer yang lebih kecil lagi antara -32768 dan 32767 .
  • FLOAT: Tipe ini dapat menyimpan angka floating-point.
  • TANGGAL: Menyimpan tanggal di YYYY-MM-DD formatnya.
  • DATETIME: Menyimpan kombinasi tanggal dan waktu di YYYY-MM-DD HH:MM:SS format. Waktu yang sama dapat disimpan tanpa tanda hubung dan titik dua di TIMESTAMP formatnya.
  • VARCHAR(N): Ini adalah string panjang variabel antara 1 dan N panjang karakter, dengan panjang maksimum 255 karakter.
  • TEKS: Tipe data ini menampung hingga 65535 karakter. Itu dapat menampung teks, gambar, atau data biner.
  • CHAR(N): Jenis ini mewakili bidang teks dengan panjang tetap N . Misalnya, untuk menyimpan kode status dua karakter, gunakan tipe data CHAR(2) .

Sebelum membuat tabel apa pun, penting untuk memutuskan skema untuk databasenya. Skema menggambarkan apa yang diwakili setiap tabel, data apa yang disimpan di setiap tabel, dan bagaimana tabel berhubungan. Untuk membuat tabel, ikuti langkah berikut:

  1. Saat masuk ke MySQL, pindah ke database tempat Anda ingin menambahkan tabel.

    use newdatabasename;
    
  2. Gunakan CREATE TABLE perintah untuk membuat tabel baru. Gunakan format CREATE TABLE table_name (field_1 datatype, field_n datatype); .

    CREATE TABLE newtablename (column1 VARCHAR(20), column2 CHAR(1), column3 DATE, column4 SMALLINT UNSIGNED);
    
    Query OK, 0 rows affected (0.02 sec)
  3. Untuk mengonfirmasi bahwa tabel sekarang ada, gunakan SHOW TABLES perintah.

    SHOW TABLES;
    
    +----------------------------+
    | Tables_in_newdatabasename |
    +----------------------------+
    | newtablename              |
    +----------------------------+
    1 row in set (0.00 sec)
  4. Untuk meninjau struktur tabel dan memverifikasi daftar bidang, gunakan DESCRIBE perintah.

    DESCRIBE newtablename;
    
    +---------+-------------------+------+-----+---------+-------+
    | Field   | Type              | Null | Key | Default | Extra |
    +---------+-------------------+------+-----+---------+-------+
    | column1 | varchar(20)       | YES  |     | NULL    |       |
    | column2 | char(1)           | YES  |     | NULL    |       |
    | column3 | date              | YES  |     | NULL    |       |
    | column4 | smallint unsigned | YES  |     | NULL    |       |
    +---------+-------------------+------+-----+---------+-------+
    4 rows in set (0.00 sec)
  5. Jika tabel tidak lagi diperlukan, hapus menggunakan DROP TABLE perintah.

    Hati-hati Saat sebuah tabel dijatuhkan, semua data di dalam tabel tersebut akan hilang dan tidak dapat dipulihkan.
    DROP TABLE newtablename;
    

Menambahkan dan Mengambil Data

Cara utama untuk menyisipkan baris data baru ke dalam tabel adalah dengan INSERT perintah.

  1. Untuk menambahkan baris, gunakan INSERT memerintah. Tentukan nama tabel, kata kunci VALUES , dan daftar nilai yang dipisahkan tanda kurung dan dipisahkan koma dalam format INSERT INTO tablename VALUES ('value_1', ... 'value_n'); . Nilai kolom harus memiliki urutan yang sama dengan definisi tabel, dengan nilai string dan tanggal dalam tanda kutip. Misalnya, untuk menambahkan data ke newtablename , tentukan nilai untuk column1 , column2 , column3 , dan column4 , dalam urutan itu.

    INSERT INTO newtablename VALUES ('value1','a','2021-09-10',123);
    
    Query OK, 1 row affected (0.01 sec)
  2. Untuk mengambil data, gunakan SELECT perintah, bersama dengan beberapa batasan yang memberi tahu MySQL baris mana yang harus dikembalikan. Seluruh isi tabel dapat dikembalikan, atau hanya sebagian. Untuk memilih semua baris dalam tabel, gunakan SELECT * perintah, tetapi jangan tambahkan kualifikasi apa pun.

    SELECT * FROM newtablename;
    
    +---------+---------+------------+---------+
    | column1 | column2 | column3    | column4 |
    +---------+---------+------------+---------+
    | value1  | a       | 2021-09-10 |     123 |
    | value2  | b       | 2021-09-08 |     123 |
    +---------+---------+------------+---------+
    2 rows in set (0.00 sec)
  3. Dimungkinkan juga untuk hanya memilih baris yang sesuai dengan kriteria tertentu, misalnya, di mana kolom diatur ke nilai tertentu. Gunakan WHERE kata kunci sebagai qualifier, diikuti dengan kriteria kecocokan sebagai batasan. Dalam contoh ini, hanya baris di mana column2 diatur ke b ditampilkan.

    SELECT * FROM newtablename WHERE column2 = 'b';
    
    +---------+---------+------------+---------+
    | column1 | column2 | column3    | column4 |
    +---------+---------+------------+---------+
    | value2  | b       | 2021-09-08 |     123 |
    +---------+---------+------------+---------+
    1 row in set (0.00 sec)
  4. Untuk tabel dengan banyak kolom, seringkali lebih mudah untuk membatasi informasi yang ditampilkan. Untuk hanya memilih kolom tertentu untuk setiap baris, tentukan nama kolom alih-alih * simbol.

    SELECT column1, column4 FROM newtablename;
    
    +---------+---------+
    | column1 | column4 |
    +---------+---------+
    | value1  |     123 |
    | value2  |     123 |
    +---------+---------+
    2 rows in set (0.00 sec)
  5. Untuk mengubah baris dalam tabel, gunakan UPDATE memerintah. SET kata kunci menunjukkan kolom yang akan diperbarui dan nilai baru. Jika perlu, WHERE kata kunci menyediakan metode untuk membatasi operasi agar hanya berlaku untuk baris tertentu. Pada contoh berikut, nilai column4 hanya diubah menjadi 155 jika column2 sama dengan b .

    UPDATE newtablename SET column4 = 155 WHERE column2 = 'b';
    
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
  6. SELECT * pernyataan dapat digunakan untuk mengonfirmasi pembaruan.

    SELECT * FROM newtablename;
    
    +---------+---------+------------+---------+
    | column1 | column2 | column3    | column4 |
    +---------+---------+------------+---------+
    | value1  | a       | 2021-09-10 |     123 |
    | value2  | b       | 2021-09-08 |     155 |
    +---------+---------+------------+---------+
    2 rows in set (0.00 sec)

Kesimpulan:MySQL di Ubuntu 20.04

MySQL adalah pilihan yang baik untuk aplikasi web berukuran kecil hingga menengah. Ini menggunakan bahasa pemrograman SQL standar industri, yang cukup mudah digunakan. MySQL sangat stabil dan kuat dan memiliki banyak sumber daya bersama dengan dukungan yang baik. Alternatif utama untuk MySQL adalah MariaDB. Ini menampilkan kinerja yang lebih baik dan fitur yang lebih baru, tetapi tidak begitu mapan.

Anda dapat dengan mudah mengunduh dan menginstal server MySQL di Ubuntu menggunakan apt paket dan mysql_secure_installation kegunaan. Bahkan jika Anda adalah satu-satunya orang yang menggunakan MySQL, yang terbaik adalah membuat pengguna MySQL baru dengan hak istimewa yang lebih terbatas.

Untuk menggunakan MySQL, pertama-tama tentukan skema database dan tentukan isi tabel. Selanjutnya buat database dan tabel datanya. Data dapat ditambahkan menggunakan INSERT perintah, dimodifikasi menggunakan UPDATE perintah, dan diambil menggunakan SELECT memerintah. Tentu saja, MySQL dapat melakukan operasi yang sangat kompleks sekalipun. Pelajari tutorial MySQL untuk memulai, dan lihat dokumentasi MySQL untuk ikhtisar lengkap.

Informasi Lebih Lanjut

Anda mungkin ingin berkonsultasi dengan sumber daya berikut untuk informasi tambahan tentang topik ini. Meskipun ini disediakan dengan harapan dapat bermanfaat, harap perhatikan bahwa kami tidak dapat menjamin keakuratan atau ketepatan waktu materi yang dihosting secara eksternal.

  • Situs web MariaDB
  • Situs web 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. onbeforeprint() dan onafterprint() setara untuk browser non IE

  2. Memelihara ketertiban dalam permintaan MySQL IN

  3. Tidak dapat menggunakan koneksi MySQL untuk kerangka entitas 6

  4. ERROR 1130 (HY000):Host '' tidak diizinkan untuk terhubung ke server MySQL ini

  5. Dapatkan nama kolom tabel di MySQL?