MySQL adalah sistem manajemen basis data relasional open-source yang paling populer. MySQL Server memungkinkan Anda untuk membuat banyak pengguna dan basis data serta memberikan hak akses yang sesuai sehingga pengguna dapat mengakses dan mengelola basis data.

Tutorial ini menjelaskan cara menggunakan baris perintah untuk membuat dan mengelola database dan pengguna MySQL atau MariaDB menggunakan Terminal.

Sebelum Anda mulai dengan tutorial ini, kami mengasumsikan bahwa Anda sudah menginstal server MySQL atau MariaDB di sistem Anda. Semua perintah akan dieksekusi sebagai pengguna root.

Untuk membuka prompt MySQL, ketik perintah berikut dan masukkan kata sandi pengguna root MySQL ketika diminta:

mysql -u root -p

Buat database MySQL baru

Untuk membuat database MySQL baru jalankan perintah berikut, cukup ganti nama_database dengan nama database yang ingin Anda buat:

CREATE DATABASE nama_database;
Query OK, 1 row affected (0.00 sec)

Jika Anda mencoba membuat database yang sudah ada, Anda akan melihat pesan kesalahan berikut:

ERROR 1007 (HY000): Can't create database 'nama_database'; database exists

TUntuk menghindari kesalahan jika database dengan nama yang sama seperti yang Anda coba buat ada, Anda dapat menggunakan perintah berikut:

CREATE DATABASE IF NOT EXISTS nama_database;
Query OK, 1 row affected, 1 warning (0.00 sec)

Pada output di atas, Query OK berarti kueri berhasil, dan 1 warning (peringatan) memberi tahu kita bahwa database sudah ada dan tidak ada database baru yang dibuat.

Lihat Semua Database MySQL

Anda dapat membuat daftar semua database yang ada di server MySQL atau MariaDB, untuk melihat semua daftar database di MySQL atau MariaDB gunakan perintah berikut:

SHOW DATABASES;

Outputnya akan terlihat seperti ini:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| database_name      |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

Database information_schema, mysql, performance_schema, dan sys dibuat pada waktu instalasi dan database tersebut menyimpan informasi tentang semua database lain, konfigurasi sistem, pengguna, izin, dan data penting lainnya. Database ini diperlukan untuk fungsionalitas instalasi MySQL yang tepat.

Hapus database MySQL

Menghapus database MySQL cukup mudah, cukup dengan menjalankan satu perintah. Perlu di perhatikan bahwa ini adalah tindakan yang tidak dapat dibalik dan harus dijalankan dengan extra hati-hati. Pastikan Anda tidak menghapus database yang salah, karena begitu menghapus database di MySQL, data yang hilang tidak akan kembali.

Untuk menghapus MySQL atau MariaDB, jalankan perintah berikut:

DROP DATABASE nama_database;
Query OK, 0 rows affected (0.00 sec)

Jika Anda mencoba menghapus database yang tidak ada, Anda akan melihat pesan kesalahan berikut:

ERROR 1008 (HY000): Can't drop database 'nama_database'; database doesn't exist

Untuk menghindari kesalahan ini, Anda dapat menggunakan perintah berikut:

DROP DATABASE IF EXISTS nama_database;

Akun pengguna di MySQL terdiri dari nama pengguna dan bagian nama host.

Untuk membuat akun pengguna MySQL baru, jalankan perintah berikut, cukup ganti ‘nama_pengguna’ dengan nama pengguna yang ingin Anda buat:

CREATE USER 'nama_pengguna'@'localhost' IDENTIFIED BY 'password_pengguna';

Pada perintah di atas kita telah menetapkan bagian hostname ke localhost yang berarti bahwa pengguna ini dapat terhubung ke server MySQL hanya dari localhost (yaitu dari sistem tempat MySQL Server berjalan). Jika Anda ingin memberikan akses dari host lain, cukup ganti localhost dengan IP mesin jarak jauh atau gunakan wildcard ‘%‘ untuk bagian host, yang berarti bahwa akun pengguna akan dapat terhubung dari host mana pun.

Sama seperti ketika bekerja dengan database untuk menghindari kesalahan ketika mencoba membuat akun pengguna yang sudah ada, Anda dapat menggunakan perintah :

CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password';
Query OK, 0 rows affected, 1 warning (0.00 sec)

Mengubah Password user MySQL

Sintaks untuk mengubah kata sandi akun pengguna MySQL atau MariaDB tergantung pada versi server yang Anda jalankan di sistem Anda.

Anda dapat menemukan versi server Anda dengan mengetik perintah berikut:

mysql --version

Jika Anda memiliki MySQL 5.7.6 dan yang lebih baru atau MariaDB 10.1.20 dan yang lebih baru, untuk mengubah kata sandi gunakan perintah berikut:

ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';

Jika Anda memiliki MySQL 5.7.5 dan lebih lama atau MariaDB 10.1.20 dan lebih lama, gunakan:

SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');

Dalam kedua kasus, output akan terlihat seperti ini:

Query OK, 0 rows affected (0.00 sec)

Daftar semua akun pengguna MySQL

Kita dapat melihat mendaftar semua akun pengguna MySQL atau MariaDB dengan “bertanya” pada tabel mysql.users:

SELECT user, host FROM mysql.user;

Outputnya akan terlihat seperti di bawah ini:

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| database_user    | %         |
| database_user    | localhost |
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)

Menghapus User MySQL Melalui Baris Perintah

Untuk menghapus akun pengguna, gunakan perintah berikut:

DROP USER '[email protected]'localhost';

Jika Anda mencoba menghapus akun pengguna yang tidak ada, maka akan muncul pesan kesalahan berikut.

ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost'

Sama seperti ketika bekerja dengan database untuk menghindari kesalahan yang dapat Anda gunakan:

DROP USER IF EXISTS 'database_user'@'localhost';
Query OK, 0 rows affected, 1 warning (0.00 sec)

Berikan izin ke akun pengguna MySQL

Ada beberapa jenis hak istimewa yang dapat diberikan ke akun pengguna. Anda dapat menemukan daftar lengkap hak istimewa yang didukung oleh MySQL di sini. Dalam panduan ini kita akan membahas beberapa contoh:

Untuk menambahkan semua hak istimewa ke akun pengguna ke database tertentu, gunakan perintah berikut:

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Untuk menambahkan semua hak istimewa ke akun pengguna di semua basis data, gunakan perintah berikut:

GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

Untuk menambahkan semua hak istimewa ke akun pengguna melalui tabel tertentu dari database, gunakan perintah berikut:

GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

Jika Anda ingin memberikan hanya hak istimewa khusus ke akun pengguna melalui jenis basis data tertentu:

GRANT SELECT, INSERT, DELETE ON database_name.* TO [email protected]'localhost';

Revoke permissions dari User MySQL

Jika Anda perlu revoke (mencabut) satu atau lebih hak istimewa atau semua hak istimewa dari akun pengguna, sintaksisnya hampir sama dengan memberikannya. Misalnya, jika Anda ingin mencabut semua hak istimewa dari akun pengguna melalui database tertentu, gunakan perintah berikut:

REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Tampilkan hak istimewa akun user MySQL

Untuk menemukan atau melihat hak istimewa apa yang telah diberikan kepada akun MySQL tertentu dapat menggunakan perintah :

SHOW GRANTS FOR 'database_user'@'localhost';
+---------------------------------------------------------------------------+
| Grants for [email protected]                                        |
+---------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'database_user'@'localhost'                         |
| GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost'  |
+---------------------------------------------------------------------------+
2 rows in set (0.00 sec)

Kesimpulan

Tutorial ini hanya mencakup dasar-dasar manajemen MySQL melalui baris perintah, tetapi menjadi awal yang baik bagi siapa saja yang ingin belajar bagaimana mengelola database dan pengguna MySQL dari baris perintah. Anda juga dapat memeriksa tutorial kami tentang cara reset kata sandi root MySQL jika Anda lupa.