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
-
Jika Anda belum melakukannya, buat akun Linode dan Compute Instance. Lihat panduan Memulai Linode dan Membuat Instans Komputasi.
-
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 dengansudo
. Jika Anda tidak terbiasa dengansudo
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:
-
Instal aplikasi server MySQL.
sudo apt install mysql-server
-
Konfirmasikan server MySQL berjalan menggunakan
systemctl
memerintah. Seharusnya menampilkan statusactive
.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:
-
Luncurkan
mysql_secure_installation
utilitas untuk mengatur kata sandi root dan mengonfigurasi opsi default lainnya.sudo mysql_secure_installation
-
Aplikasi menanyakan apakah akan mengaktifkan
VALIDATE PASSWORD COMPONENT
komponen. Jika Anda menjawaby
, ia kemudian menanyakan apakah akan menyetel kekuatan sandi keLOW
,MEDIUM
, atauHIGH
.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?
-
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:
-
Pertanyaan berikut menanyakan apakah akan menghapus pengguna anonim, untuk mengizinkan
root
akun untuk terhubung dari jarak jauh, dan untuk menghapustest
basis data. Masukkany
ataun
di setiap prompt sesuai dengan preferensi Anda.test
database berguna selama validasi awal, tetapi untuk alasan keamanan, yang terbaik adalah melarangroot
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
-
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!
-
(Opsional ) Untuk mengakses MySQL dari jarak jauh, pastikan lalu lintas MySQL diizinkan melalui
ufw
firewall. Tambahkan aturan berikut untuk membuka port3306
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:
-
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 menggunakansudo mysql -u root -p
, bersama denganroot
kata sandi.sudo mysql
-
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>
-
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)
-
Buat pengguna baru menggunakan
CREATE USER
memerintah. Masukkan nama pengguna dalam format'username'@'IP_Address'
, di manaIP_Address
adalah alamat IP pengguna. Jika pengguna mengakses MySQL dari Linode lokal, gantilocalhost
sebagai pengganti Alamat IP. Pada perintah di bawah ini, gantimysqluser
danpassword
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 memerlukansha256_password
metode.CREATE USER 'mysqluser'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
-
Berikan akses ke pengguna baru menggunakan
GRANT PRIVILEGE
perintah, menggunakan formatGRANT list of privileges ON table TO 'username'@'IP_Address';
. Beberapa hak istimewa yang lebih umum termasukCREATE
,ALTER
,DROP
,INSERT
,UPDATE
,DELETE
, danSELECT
. Untuk menerapkan hak istimewa ini ke semua database, gunakan variabel wildcard*.*
. Perintah berikut memberikan hak non-administratif umum pada semua database kemysqluser
.GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD ON *.* TO 'mysqluser'@'localhost' WITH GRANT OPTION;
-
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
-
Untuk membuat database, login ke MySQL menggunakan akun dengan kode
CREATE
hak istimewa. Gantimysqlusername
dengan nama pengguna yang Anda buat.mysql -u mysqlusername -p
-
Buat database baru menggunakan
CREATE DATABASE
memerintah. Gantinewdatabasename
dengan nama yang diinginkan untuk database Anda.CREATE DATABASE newdatabasename;
Query OK, 1 row affected (0.00 sec)
-
Untuk mengkonfirmasi database baru telah dibuat dengan benar, gunakan
SHOW DATABASES
.SHOW DATABASES;
+--------------------+ | Database | +--------------------+ ... | newdatabasename | ... +--------------------+ 5 rows in set (0.00 sec)
-
Tunjukkan database yang ingin Anda gunakan menggunakan
USE
memerintah. Gantinewdatabasename
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. -
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
dan2147483647
. Jika ditentukan sebagaiUNSIGNED
, itu dapat menyimpan nilai antara0
dan4294967295
. - KECIL: Memegang nilai integer yang lebih kecil lagi antara
-32768
dan32767
. - 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 diTIMESTAMP
formatnya. - VARCHAR(N): Ini adalah string panjang variabel antara
1
danN
panjang karakter, dengan panjang maksimum255
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 dataCHAR(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:
-
Saat masuk ke MySQL, pindah ke database tempat Anda ingin menambahkan tabel.
use newdatabasename;
-
Gunakan
CREATE TABLE
perintah untuk membuat tabel baru. Gunakan formatCREATE 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)
-
Untuk mengonfirmasi bahwa tabel sekarang ada, gunakan
SHOW TABLES
perintah.SHOW TABLES;
+----------------------------+ | Tables_in_newdatabasename | +----------------------------+ | newtablename | +----------------------------+ 1 row in set (0.00 sec)
-
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)
-
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.
-
Untuk menambahkan baris, gunakan
INSERT
memerintah. Tentukan nama tabel, kata kunciVALUES
, dan daftar nilai yang dipisahkan tanda kurung dan dipisahkan koma dalam formatINSERT 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 kenewtablename
, tentukan nilai untukcolumn1
,column2
,column3
, dancolumn4
, dalam urutan itu.INSERT INTO newtablename VALUES ('value1','a','2021-09-10',123);
Query OK, 1 row affected (0.01 sec)
-
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, gunakanSELECT *
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)
-
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 manacolumn2
diatur keb
ditampilkan.SELECT * FROM newtablename WHERE column2 = 'b';
+---------+---------+------------+---------+ | column1 | column2 | column3 | column4 | +---------+---------+------------+---------+ | value2 | b | 2021-09-08 | 123 | +---------+---------+------------+---------+ 1 row in set (0.00 sec)
-
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)
-
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, nilaicolumn4
hanya diubah menjadi155
jikacolumn2
sama denganb
.UPDATE newtablename SET column4 = 155 WHERE column2 = 'b';
Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
-
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