2017-06-01 123 views
6

Kök parola ayarlayarak mysql güvenliğini sağlamak istiyorum. parola yazmadanMysql (MariaDB 10.0.29): Kök parolayı ayarla, ancak yine de parola sormadan giriş yapabilirsiniz?

MariaDB [(none)]> select Host, User, Password from mysql.user; 
+-----------+------+-------------------------------------------+ 
| Host  | User | Password         | 
+-----------+------+-------------------------------------------+ 
| localhost | root | *58319282EAB9E38D49CA25844B73DA62C80C2ABC | 
+-----------+------+-------------------------------------------+ 
1 row in set (0.00 sec) 

Fakat, floş ayrıcalıkları sonra, Mysql yeniden, hala giriş yapabilirsiniz MySQL (yerel ana bilgisayarda): başarıyla kök şifresini sıfırlamak.

[email protected]:/# mysql 
Welcome to the MariaDB monitor. Commands end with ; or \g. 
Your MariaDB connection id is 10 
Server version: 10.0.29-MariaDB SLE 12 SP1 package 

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

MariaDB [(none)]> 

Bağlantı kurulduğunda mysql şifresini sormaya nasıl zorlayabilirim? Teşekkürler !

MySQL Masanın üzerinde

cevap

13

Eklentinin adı verilen bir satır var:

Ben mariadb yüklemeleri için doğru varsayılan eklentisi Hatırlarsanız
MariaDB [(none)]> SELECT host, user, password, plugin FROM mysql.user LIMIT 0,1; 
+-----------+------+-------------------------------------------+--------+ 
| host  | user | password         | plugin | 
+-----------+------+-------------------------------------------+--------+ 
| localhost | root | *           |  | 
+-----------+------+-------------------------------------------+--------+ 
1 row in set (0.00 sec) 

'konsol' veya 'unix_socket' vardır ve bu eklenti şifre olmadan girmek için izin verir, konsoldan. Ancak, şifreyle kimlik doğrulamayı da devre dışı bırakabilirsiniz ve başka istemcilerden bağlanamazsınız.

Eklenti alanını boş ('') değeriyle güncelleştirin ve ardından FLUSH PRIVILEGES;

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass'); 
UPDATE mysql.user SET plugin = '' WHERE user = 'root' AND host = 'localhost'; 
FLUSH PRIVILEGES; 

Bu sorunu çözdünüz.

+0

Teşekkür @Sakura Kinomoto. Bunu yaptım ama hala hayır şans! – thanhpt

+0

Şansınız yok ... eklentisi etkinleştirilmiş başka bir kullanıcı varsa, mysql.user tablonuzu kontrol edin. Belki başka bir satır ile giriş yapıyorsunuz, örneğin root @% –

+0

'code'MariaDB [(none)]> mysql.user öğesinden Host, User, Password, plugin'i seçin; + ----------- + -------- + --------------------------- ---------------- + -------- + | Ana bilgisayar | Kullanıcı | Şifre | eklenti | + ----------- + -------- + --------------------------- ---------------- + -------- + | localhost | kök | * 58319282EAB9E38D49CA25844B73DA62C80C2ABC | | + ----------- + -------- + --------------------------- sette ---------------- + -------- + 1 satır emin tablo kullanıcısıyım code' (0.00 sn) '(root sadece bir kaydı var boş eklenti değeri ile @localhost). – thanhpt