Unutulan MySQL Şifresini Değiştirme (Ubuntu)

 Gösterim : 2055

Şifre sıfırlama işlemi

Şifre sıfırlama işlemi sırasında sunucu üzerindeki kontrolünüz kaybolacaktır. Bütün bağlantılar root yetkisi ile gerçekleşecektir. Bu yüzden bu işlemlerin yapıldığı süre içerisinde sunucuya ulaşım yollarının kapatılması iyi bir fikir olacaktır.

Şifre sıfırlamak için şu işlemler gerçekleştirilmelidir.

Mysql sunucusu durdurulmalıdır.

sudo /etc/init.d/mysql stop

Mysql sunucusunun alt işlevleri tekrar çalıştırılmalıdır. Bu çalıştırma işleminde --skip-grant-tables option ve --skip-networking &parametreleri kullanılmalıdır. --skip-networking & parametresi ağ desteği olmadan başlamasını sağlayacaktır. Kullanıcı hakları değiştirileceği için bu yöntem güvenlik açısından önemlidir. Bu işlemler için şu komut kullanılmalıdır.

sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &

Mysql sunucusunun alt süreçleri çalıştırıldıktan sonra işlemleri yapmak için mysql uçbirimine düşmek gerekir. Bu uçbirime ulaşmak için şu komut kullanılır.

mysql -u root

Root şifresini değiştirmek yada yenilemek için ise şu kod kullanılmalıdır. Şifreniz yazan kısım sizin kendi kullanmak istediğiniz şifre ile değiştirilmelidir.

SET PASSWORD FOR root@'localhost' = PASSWORD('şifreniz');

Eğer herhangi bir bağlantı ile kullanılabilen bir root hesabı varsa ayrıca şu kodda uygulanmalıdır. Şifreniz kısmı yine sizin istediğiniz şifre olarak değiştirilmelidir.

UPDATE mysql.user SET Password=PASSWORD('şifreniz') WHERE User='root';

Alternatif yol

Bir diğer alternatif metot ise şu şekildedir. Yine mysql uçbiriminde şu komutlar verilmelidir. Şifreniz kısmı istediğiniz şifre ile değiştirilmelidir.

USE mysql
UPDATE user SET Password = PASSWORD('şifreniz')
WHERE Host = 'localhost' AND User = 'root';

Eğer herhangi bir bağlantı ile kullanılabilen bir root hesabı varsa ayrıca şu kodda uygulanmalıdır. Şifreniz kısmı yine sizin istediğiniz şifre olarak değiştirilmelidir.

USE mysql
UPDATE user SET Password = PASSWORD('şifreniz')
WHERE Host = '%' AND User = 'root';

Bu iki komutta başarılı olmaları durumunda bir yada iki satır değişiklikle şu çıktıyı döndürecektir.

FLUSH PRIVILEGES;

İşlemin tamamlanması

Bütün bu işlemleri yaptıktan sonra mysql sunucusunun durdurulup tekrar başlatılması gereklidir. Bu işlemi şu iki kod ile gerçekleştirmek mümkündür.

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

Diğer yöntem - Tekrar Kurmak (Purge ile)

Bir diğer metot ise MySQL sunucusunun tekrar kurulmasıdır. Bunun için paketler purge seçeneği ile kaldırılmalıdır. Bu kaldırıp tekrar kurma işlemi şu iki kod ile gerçekleştirilebilir.

sudo apt-get --purge remove mysql-server mysql-common mysql-client
sudo apt-get install mysql-server mysql-common mysql-client

Kurulum sırasında yapılandırılırken yeni şifre bilgisi sorulacaktır. Sorulmazsa şu komutlarla yeni şifre atanabilir. Şifreniz kısmı seçeceğiniz şifre ile değiştirilmelidir.

mysqladmin -u root password şifreniz
sudo /etc/init.d/mysql restart

Diğer yöntem - Tekrar Kurmak (Tasksel ile)

Bir diğer metot ise MySQL sunucusunun tekrar kurulmasıdır. Bunun için terminale

sudo tasksel

yazılır. Açılan pencereden mysql seçeneği kaldırılır. İşlem onaylanıp tamamlandıktan sonra tasksel yeniden çalıştırılır ve mysql seçeneği işaretlenir Kurulum sırasında yapılandırılırken yeni şifre bilgisi sorulacaktır. Bu kısımda şifrenizi belirleyebilirsiniz.

Diğer yöntem - dpkg

Bir diğer metot ise MySQL sunucusunun tekrar yapılandırılmasıdır. Bu işlem aşağıdaki kod ile gerçekleştirilebilir.

sudo dpkg-reconfigure mysql-server-5.1

Yapılandırılırken yeni şifre bilgisi sorulacaktır. Şifrenizi bu bölümde değiştirebilirsiniz. Yüklü olan mysql versiyonunu bilmiyorsanız

sudo dpkg-reconfigure mysql-server-5.

yazdıktan sonra birkaç kez TAB tuşuna basarak veya

mysql --version

veya

mysql -u root -p -e 'SHOW VARIABLES LIKE "%version%";'

ile öğrenebilirsiniz.