Buat pengguna super di MySQL 5.5 tidak berfungsi: Izin ditolak untuk root @ localhost

0

Menggunakan CentOS 6, masuk ke MySQL sebagai root, memasukkan perintah:

create user 'user123' identified by 'pass123';

bekerja dengan baik. Tetapi ketika saya mencoba dan memberi pengguna itu super user privileges dengan:

grant all on *.* to 'user123' identified by 'pass123';

Saya mendapatkan kesalahan:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Kemudian

select * from mysql.user;

menunjukkan bahwa root memiliki Y di semua kolom, jadi harus memiliki semua hak istimewa.

Saya akan sangat berterima kasih jika ada yang bisa membantu saya menemukan mengapa root tidak dapat memberikan hak istimewa karena saya tidak bisa melihat mengapa itu tidak berhasil.

Terima kasih

Larry B
sumber

Jawaban:

1

Hak istimewa di MySQL terkait dengan 'nama pengguna' dan 'host'. Host dapat berupa nama domain, alamat IP, atau 'localhost'. Semua ini bisa termasuk wildcard %. Jika Anda terhubung dari tempat yang salah, bahkan dengan nama pengguna dan kata sandi yang tepat, Anda masih akan mendapatkan izin yang ditolak kesalahan.

Masing-masing pengguna yang berbeda ini dapat memiliki akses yang berbeda ke database, tabel, baris, dan perintah yang berbeda.

Perlu juga dicatat bahwa '127.0.0.1' tidak sama dengan 'localhost' karena menggunakan mysqlklien pada baris perintah akan menggunakan soket daripada IP untuk menghubungkan. Jika Anda ingin menggunakan IP untuk terhubung saat menggunakan mysqlklien di server MySQL, Anda dapat menentukan -h <IP address>.

Untuk melihat semua 'pengguna' yang berbeda:

SELECT user,host,password FROM mysql.user;
Ladadadada
sumber
-P mengatur port, bukan IP.
codecowboy
Memang benar. Tidak tahu dari mana -P berasal. Tetap.
Ladadadada