Tepat setelah Anda menginstal MySQL, Anda akan memiliki root
pengguna tersedia.
Ini adalah pengguna yang mungkin Anda gunakan untuk mencoba dan melihat apakah MySQL berfungsi, tetapi tidak boleh menjadi pengguna untuk jenis penggunaan lain.
Mengapa? Karena terlalu kuat .
Dengan kekuatan besar datang tanggung jawab besar (kata paman Spider-Man). Dan khususnya, bahaya besar jika Anda membuat kesalahan.
Sebagai gantinya, Anda harus membuat pengguna ad-hoc yang hanya memiliki izin untuk melakukan pekerjaan mereka, dan tidak lebih. Sama untuk menggunakan Linux atau sistem Unix apa pun, misalnya:Anda tidak ingin menggunakan root
pengguna, tetapi akun pengguna Anda sendiri.
Untuk membuat pengguna baru, sambungkan ke MySQL menggunakan root
pengguna:
mysql -u root -p
lalu gunakan perintah
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
Misalnya, untuk membuat pengguna bernama test_user
dengan kata sandi test_password12A
jalankan perintah:
CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'test_password12A';
Perintah harus mengembalikan baris yang mengatakan Query OK, 0 rows affected (X.XX sec)
:
Jika Anda menggunakan kata sandi yang tidak valid, sistem akan memberi tahu Anda sesuatu seperti ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
. Dalam hal ini kesalahan mengatakan bahwa kata sandinya tidak cukup rumit, karena ketika saya menginstal MySQL saya menyuruhnya untuk menggunakan kebijakan kata sandi tertentu.
Itu hebat! Sekarang pengguna telah dibuat, dan kita dapat terhubung menggunakan pengguna itu ke MySQL. Dari baris perintah Anda dapat keluar dengan mengetikkan QUIT
, dan mengetik:
mysql -u test_user -p
Sekarang jika saya mencoba membuat database, saya akan mendapatkan error yang mengatakan ERROR 1044 (42000): Access denied for user 'test_user'@'localhost' to database 'testing'
:
Mengapa? Karena pengguna tidak memiliki izin untuk membuat database baru .
Kita akan melihat cara bekerja dengan izin di tutorial lain.
Perlu disebutkan @'localhost'
string yang kami gunakan untuk membuat pengguna. Ini memberitahu MySQL bahwa pengguna hanya dapat terhubung dari localhost. Yang baik-baik saja ketika menguji berbagai hal dan ketika aplikasi apa pun yang akan terhubung ke MySQL berjalan di komputer yang sama yang menjalankan DBMS.
Jika ini tidak benar, Anda harus memasukkan secara manual IP dari mana pengguna akan terhubung, atau gunakan %
kartu pengganti:
CREATE USER 'test_user'@'%' IDENTIFIED BY 'test_password12A';
Saya ingin menutup tutorial ini dengan menunjukkan cara menghapus pengguna yang kita buat:
DROP USER 'test_user'@'localhost';