17 Aralık 2009 Perşembe

MySQL

Bu kısımda mysql ile ilgili çeşitli bilgiler verilecektir.


Komut satırından veritabanına bağlantı

Veritabanı yeni oluşturulmuşsa ve/veya kullanıcının bir şifresi yoksa:
# mysql -ukullanici_adi
# mysql -uroot

Kullanıcının şifresi varsa:
# mysql -ukullanıcı_adı -pşifre
# mysql -uroot -proot


Kullanıcının şifresini değiştirme

Veritabanı yeni oluşturulmuşsa ve/veya kullanıcının bir şifresi yoksa:
# mysqladmin -u kullanıcı_adı password şifre
# mysqladmin -u root password root

Kullanıcının şifresi varsa:
# mysqladmin -u kullanıcı_adı -p eski_şifre password yeni şifre

# mysqladmin -u root -p root password 123456

SQL ile şifre değiştirme:
mysql# use mysql;
mysql# update user set password=PASSWORD("yeni_şifre") where User='root';
mysql# flush privileges;


Root şifresini sıfırlama

1. MySQL servisi kapatılır.
2. MySQL servisi --skip-grant-tables seçeneği ile başlatılır.
         Eğer bu şekilde başlatılmasında problem oluyorsa my.cnf/my.ini dosyasının mysqld kısmına skip-grant-tables yazan bir satır eklenip, servis yeniden başlatılır.
3. MySQL sunucusuna root olarak bağlanılır.
4. Yeni şifre SQL yöntemi ile belirlenir.
5. Komut satırından çıkılıp MySQL servisi yeniden başlatılır.

LINUX'te kullanım örneği
1. # /etc/init.d/mysql stop
2. # mysqld_safe --skip-grant-tables
3. # mysql -u root
4. mysql# use mysql;
    mysql# update user set password=PASSWORD("yeni_şifre") where User='root';
    mysql# flush privileges;
    mysql# quit
5. # /etc/init.d/mysql restart


Shell script'ten sql kullanmak

--execute parametresi ile istenilen sql komutu çalıştırılabilir.

mysql --user=root --password=degistir --execute="show databases"

mysql --user=root --password=degistir --execute="CREATE DATABASE DENEMEVT CHARACTER SET utf8 COLLATE utf8_turkish_ci"


Sunucuya başka bilgisayarlardan erişim

MySQL artık ağ erişimi açık olarak gelmektedir. Varsayılan olarak sadece yerel bilgisayardan erişime izin vermektedir. my.cnf/my.ini dosyasında bind-address değişkeninin değerini 0.0.0.0 ya da sunucunun IP adresi olarak değiştirirseniz MySQL servisine başka bilgisayarlardan da erişebilirsiniz. Gerektiği durumlarda aşağıdaki 2 maddeyi de uygulamalısınız.


Kullanıcı yetkisi vermek

Aşağıdaki komut root kullanıcısına tüm bilgisayarlardan DENEMEVT şeması üzerinde her tür işlem yapma yetkisi verir.
GRANT ALL ON DENEMEVT.* TO 'root'@'%'
 

Linux sunucularda uzaktan erişim

Linux sunucularda uzaktan erişim için yukarıdaki başlıkta yapılan işlem yeterli olmayabilir.
Bu durumda /etc/hosts.allowed dosyasına "mysqld: ALL" yazan bir satır eklemeniz gerekecektir.


Hiç yorum yok:

Yorum Gönder