Saya menghadapi masalah dengan pengguna non root / admin mysql, saya mengikuti langkah-langkah di bawah ini untuk membuat pengguna dan hak istimewanya, perbaiki saya jika saya melakukan kesalahan,
saya menginstal mysql
pada RHEL 5.7 64bit
, paket disebutkan di bawah ini, setelah saya melakukan rpm install
kita
- membuat db mysql menggunakan
mysql_install_db
, lalu - memulai layanan mysql kemudian
- menggunakan
mysql_upgrade
juga yang kami lakukan ke server.
Setelah proses ini saya dapat masuk sebagai root
tetapi dengan pengguna non-root saya tidak dapat masuk ke server:
[root@clustertest3 ~]# rpm -qa | grep MySQL
MySQL-client-advanced-5.5.21-1.rhel5
MySQL-server-advanced-5.5.21-1.rhel5
[root@clustertest3 ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[root@clustertest3 ~]# ls -ld /var/lib/mysql/mysql.sock
srwxrwxrwx 1 mysql mysql 0 Nov 30 11:09 /var/lib/mysql/mysql.sock
mysql> CREATE USER 'golden'@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON * . * TO 'golden'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT USER(),CURRENT_USER();
+----------------+----------------+
| USER() | CURRENT_USER() |
+----------------+----------------+
| root@localhost | root@localhost |
+----------------+----------------+
1 row in set (0.00 sec)
[root@clustertest3 ~]# mysql -ugolden -p
Enter password:
ERROR 1045 (28000): Access denied for user 'golden'@'localhost' (using password: YES)
Ini masalah yang saya hadapi, apakah ada solusi untuk ini?
mysql
mysql-error-1045
pengguna3061726
sumber
sumber
SELECT * FROM mysql.user
Jawaban:
Jangan berikan semua hak istimewa atas semua database kepada pengguna non-root, ini tidak aman (dan Anda sudah memiliki "root" dengan peran itu)
Pernyataan ini membuat pengguna baru dan memberikan hak istimewa yang dipilih untuk itu. YAITU:
Lihat dokumennya untuk melihat detail semua hak istimewa
EDIT: Anda dapat mencari info lebih lanjut dengan kueri ini (masuk sebagai "root"):
Untuk melihat apa yang terjadi
sumber
Jika Anda terhubung ke MySQL menggunakan mesin jarak jauh (Contoh meja kerja) dll., Gunakan langkah-langkah berikut untuk menghilangkan kesalahan ini pada OS tempat MySQL diinstal
Coba masuk ke instance MYSQL.
Ini berhasil bagi saya untuk menghilangkan kesalahan ini.
sumber
Mencoba:
Atau bahkan lebih baik gunakan:
mysql_setpermission
untuk membuat penggunasumber
%
yang seharusnya berfungsi untuk semua host, tidak menyelesaikannya. Jadi dengan menentukanlocalhost
itu harus bekerja. Jika itu TIDAK berhasil, ada sesuatu yang salah di mysqlSepertinya Anda mencoba menjadikan pengguna 'golden' @ '%' tetapi pengguna lain dengan nama 'golden' @ 'localhost' menghalangi / didahulukan.
Lakukan perintah ini untuk melihat pengguna:
Anda akan melihat dua entri:
1) pengguna = emas, tuan rumah =%
2) pengguna = emas, host = localhost
Lakukan Perintah ini:
Mulai ulang MySQL Workbench.
Kemudian lakukan lagi perintah asli Anda:
Kemudian saat Anda mencoba masuk ke MySQL, ketik seperti ini:
Tekan 'Uji Koneksi' dan masukkan 'kata sandi' kata sandi Anda.
sumber
Pertama saya membuat pengguna menggunakan:
Setelah Googling dan melihat ini , saya memperbarui kata sandi pengguna menggunakan:
dan saya bisa terhubung sesudahnya.
sumber
Untuk siapa pun yang telah melakukan semua saran tetapi masalahnya masih berlanjut.
Periksa prosedur yang tersimpan dan lihat PENILAI. Para definisi tersebut mungkin sudah tidak ada lagi.
Masalah saya muncul ketika kami mengubah host wildcard (%) menjadi khusus IP, membuat database lebih aman. Sayangnya ada beberapa tampilan yang masih menggunakan 'user' @ '%' meskipun 'user' @ '172 ....' secara teknis benar.
sumber
Saya juga memiliki masalah serupa, dan kemudian saya menemukannya karena saya mengubah nama host saya (bukan
localhost
).Oleh karena itu, saya menyelesaikannya dengan menentukan
--host=127.0.0.1
sumber
Menurut cara Anda membuat pengguna, MySQL menafsirkan dengan cara yang berbeda. Misalnya, jika Anda membuat pengguna seperti ini:
MySQL mengharapkan Anda memberikan beberapa hak istimewa untuk menggunakan
grant all on <your_db>.* to user01;
Jangan lupa
flush privileges;
Tetapi, jika Anda membuat pengguna seperti itu (dengan meneruskan alamat IP), Anda harus mengubahnya menjadi:
jadi, untuk memberikan beberapa hak istimewa, Anda harus melakukan itu:
sumber
Pastikan pengguna memiliki entri localhost di tabel pengguna. Itulah masalah yang saya alami. EX:
sumber
Dalam kasus saya, kesalahan yang sama terjadi karena saya mencoba menggunakan mysql dengan hanya mengetik "mysql" alih-alih "mysql -u root -p"
sumber
hubungkan server Anda dari mysqlworkbench dan jalankan perintah ini-> ALTER USER 'root' @ 'localhost' DIIDENTIFIKASI OLEH 'yourpassword';
sumber
Untuk pencarian yang mengganggu sampai di sini setelah mencari pesan kesalahan ini:
Masalahnya bagi saya adalah tidak menyertakan kata sandi dalam tanda kutip. misalnya. Saya perlu menggunakan,
-p'password'
bukan-ppassword
sumber
Cukup tambahkan nama komputer alih-alih 'localhost' di nama host atau alamat Host MySQL.
sumber