Bagaimana saya bisa membuat mysql mengenali pengguna root setelah menginstal?

0

Saya baru saja menginstal MySQL 5.5 dan setelah menginstal saya diminta untuk mengatur kata sandi root dengan menjalankan dua perintah:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h linux-opxd password 'new-password'

atau

/usr/bin/mysql_secure_installation

Saya menjalankan perintah pertama - OK. Saya menjalankan perintah kedua kali ini dengan kesalahan:

kesalahan: 'Akses ditolak untuk' root '@' localhost 'pengguna (menggunakan kata sandi: NO)'

Saya menjalankan kembali yang pertama (untuk memeriksa) - kesalahan seperti di atas.

Jadi, saya mengeksekusi mysql_secure_installation. Semuanya berjalan baik-baik saja dan kata sandi yang diakui. Jadi saya menjalankan dua perintah pertama lagi - dan kesalahan lagi.

Sebagai cek lain:

mysql --user=root

Kesalahan yang sama seperti di atas.

Saya mencoba mengatur ulang kata sandi dengan otentikasi mysql, juga saya mencoba /usr/bin/mysql_upgrade -u root -p- masih kesalahan saat mencoba meluncurkan konsol mysql sebagai root.

Jadi akhirnya saya mematikan autentikasi, terhubung ke konsol dan menjalankan ini:

SELECT user();

Output - root@. Jika saya terhubung seperti ini:

mysql --user='root@localhost'

Saya akan mendapatkan root@localhost@.

Jadi untuk saat ini tampaknya itu bukan masalah dengan hak istimewa, atau kurangnya kata sandi atau hal seperti ini, tetapi tidak mengenali pengguna yang diberikan pada baris perintah - mysql menambahkan @di akhir dan ini tampaknya menjadi masalah (setidaknya untuk mataku).

Pertanyaannya adalah: bagaimana cara membuat MySQL mengenali pengguna yang diberikan?

Greenoldman
sumber

Jawaban:

3

Kesalahan pertama yang Anda terima:

kesalahan: 'Akses ditolak untuk' root '@' localhost 'pengguna (menggunakan kata sandi: NO)'

menunjukkan bahwa Anda mungkin tidak menggunakan opsi -p dalam perintah mysql.

Setelah membuat kata sandi root mysql, Anda harus dapat mengakses MySql menggunakan:

mysql -u root -p

Di mana Anda akan diminta untuk memasukkan kata sandi root MySql.

Jika Anda ingin mengaktifkan akses dari beberapa lokasi lain (berbeda dari localhost), Anda dapat memberikan hak istimewa menggunakan perintah SQL GRANT yang serupa dengan ini:

mysql> CREATE USER 'username'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON databaseName.* TO 'username'@'localhost' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

Dengan cara yang sama, Anda dapat mengaktifkan akses DB MySql dari beberapa nama host / alamat IP lain atau lokasi apa pun dengan mengubah 'nama pengguna' @ 'localhost' menjadi: 'nama pengguna' @ 'someFQDN', 'nama pengguna' @ 'IP_address', 'nama pengguna '@'% '.

Untuk informasi tambahan, saya akan merekomendasikan: http://dev.mysql.com/doc/refman/5.1/en/adding-users.html .

Tepuk tangan!

Ana Peric
sumber
Terima kasih banyak! Saya pikir saya akan diminta kata sandi, saya salah.
greenoldman
1

Alasan Anda mendapatkan pesan kesalahan pada perintah mysqladmin kedua adalah karena Anda tidak mengautentikasi dengan server menggunakan kata sandi yang Anda atur di perintah pertama. Cukup sertakan '-p' pada perintah kedua, dan masukkan kata sandi saat diminta. Atau lebih mudah lagi, cukup gunakan perintah mysql_secure_installation, karena itu perlu ditambah beberapa hal berguna lainnya.

Jeppe Toustrup
sumber
Terima kasih Anda menunjukkan masalahnya dengan benar. Sehubungan dengan mysql_secure_installationsaya menulis saya mengeksekusi juga.
greenoldman