MySQL sunucusu kurulumu ve kullanımı

Ubuntu Türkiye Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla

MYSQL paketini PHP5 ile kurmak

Paket yöneticisi üzerinden ya da komut satırında aşağıdaki komutu kullanarak "mysql-server, libapache2-mod-auth-mysql, php5-mysql" paketlerini kurunuz.

sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql

MySQL paketini PHP4 ile kurmak

İlk olarak, bu paketler main deposunda olmadığından universe deposu etkinleştirilmelidir. Paket yöneticisi ya da komut satırından "mysql-server libapache2-mod-auth-mysql php4-mysql" paketlerini kurulmalıdır. Bu işlem için şu komut kullanılabilir.

sudo apt-get install mysql-server libapache2-mod-auth-mysql php4-mysql

MySQL Bind adreslerini atamak

Ağınızdaki diğer bilgisayarlardan veritabanına erişmeden önce, bind adresini değiştirmeniz gerekir. Bu durumun bir güvenlik problemi yaratabileceği göz önüne alınmalıdır. Çünkü bu işlem sonrasında diğer makinalarda MySQL kurulu bilgisayardaki MySQL bilgilerine ulaşabilecektir.

MySQL yapılandırma dosyasını değiştirmek için şu komutla dosyayı açabilirsiniz.

sudo gedit /etc/mysql/my.cnf

Bu dosyada varsayılan adres olarak localhost bulunmaktadır.

/etc/mysql/my.cnf

Diğer bilgisayarların erişebilmesi için bu konuma mysql yüklü bilgisayarın ip adresi yazılmalıdır. Aşağıdaki örnekte bu bilgisayarın ip adresinin 192.168.1.20 olduğu varsayılmıştır.

/etc/mysql/my.cnf

Eğer ip adresiniz dinamik ise, bind-address satırını devre dışı bırakabilirsiniz ve böylece şu anda kullandığınız ip adresini ön tanımlı olarak kullanır. Eğer bind-adsress satırını değiştirmeden bağlanmaya çalışırsanız, "Can not connect to mysql error 10061" hatasını alırsınız.

MySQL root şifresi atamak

Veritabanınıza konsoldan erişmeden önce şu kodun yazılarak mysql uçbirimine ulaşılması gerekir. Bu uçbirime şu komutla ulaşabilirsiniz.

mysql -u root

Eğer hali hazırda kurulum evresinde belirlediğiniz bir root şifresi varsa şu komudu kullanmanız gerekir.

mysql -u root -p

Bu komutları kullandıktan sonra uçbirimdeki komut isteyen yapı değişecektir.

Eski hali:

kullanıcı adı@bilgisayar adı:~$

Yeni hali:

mysql>

Eğer hali hazırda bir mysql root şifresi atanmamışsa bu durumda şu komut ile yeni şifreyi atayabilirsiniz.

SET PASSWORD FOR 'root'@'localhost' = PASSWORD(''''kullanmak istediğiniz şifre'''');

Başarılı bir mysql komutu aşağıdaki çıktıyı verecektir:

Query OK, 0 rows affected (0.00 sec)

Mysql uçbiriminden çıkmak için şu komutu kullanabilirsiniz

\q

Mysql komutları çok sayıda satırdan oluşabilir. Mysql komutunuzu noktalı virgül (;) ile bitirmeyi unutmayın.

Mysql şifresinin unutulması durumunda MySQL sunucusu root şifresinin sıfırlanması metodu kullanılabilir.

Bir MySQL veritabanı oluşturmak

Mysql uçbiriminde aşağıdaki kod ile veritabanı yaratılabilir. Bu koddaki veritabanı1 ismi örnek olarak seçilmiş bir isimdir. Yerine tercih edilen isim yazılabilir.

CREATE DATABASE veritabani1;

Bir MySQL kullanıcısı oluşturmak

Bütün ayrıcalıklara sahip bir yeni kullanıcı yaratmak için (yalnızca sorun gidermede kullanın), mysql uçbiriminde komut kullanılır.

GRANT ALL PRIVILEGES ON *.* TO 'kullaniciadi'@'localhost' IDENTIFIED BY 'şifreniz' WITH GRANT OPTION;

Yalnızca "veritabani1" adlı veritabanını kullanabilen daha az ayrıcalığa sahip bir yeni kullanıcı yaratmak için (çoğu web uygulaması için yeterlidir), mysql komut satırında aşağıdaki kod kullanılabilir. Bu koddaki kullaniciadi ve şifre örnek olarak seçilmiş isimlerdir. Veritabani1 ismi de yine örnek olarak verilmiştir.

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON veritabani1.* TO 'kullaniciadi'@'localhost' IDENTIFIED BY 'şifre';

localhost veritabanına erişilecek konumdur. Veritabanına her konumdan bağlantıya izin vermek (ya da belli konumlardan) için bu değeri '%' ile (ya da host ya da ip adresleriyle) değiştirilebilir.

Phpmyadmin ve mysql-admin

Root şifresi atama ve veritabanları yaratma da dahil bütün mysql işleri phpmyadmin ya da mysql-admin kullanılarak grafik arabirimde yapılabilir.

Birini ya da her ikisini de kurmak için ilk önce universe depolarını etkinleştirmeniz gerekir.

PhpMyAdmin paketini sisteminize kurmak için şu kodda faydalanabilirsiniz.

sudo apt-get install phpmyadmin

Mysql-admin kurmak için ise şu kodu kullanabilirsiniz:

sudo apt-get install mysql-admin

Sorun giderme

Blowfish_secret hatası alınıyorsa /etc/phpymyadmin/blowfish_secret.inc.php dosyasından kriptografi için bir bölüm seçilip ayarlanmalı, daha sonra satır (php etiketleri hariç) /etc/phpmyadmin/config.inc.php dosyasına işlenmelidir.

Eğer phpmyadmin hakkında daha fazla bilgi almak isterseniz phpMyAdmin sayfasını inceleyebilirsiniz.

MySQL Referans El Kitabı içindeki 2.9.3. Başlangıç MySQL Hesaplarının Güvenliğini Sağlamak kısmını okuyabilirsiniz.

Otomatik yedekleme

AutoMySQLBackup betiği ile günlük, haftalık veya aylık yedek alınabilir. Bu yedekler sıkıştırıp istenilen uzak bir sunucuya NFS yada FTP ile yada elektronik posta adresine gönderilebilir.

Betik sourceforce adresinden edinilebilir.

Çalıştırmak için betik /etc/cron.daily yada /etc/cron.weekly ... vs. adresine kopyalanmalı ve aşağıdaki şu değişiklikler yapılmalıdır.

  • USERNAME= MySQL_Kullanıcı_Adı
  • PASSWORD= MySQL_Şifreniz
  • DBNAMES="Veri_Tabanı_Adı"

Dosyam kaydedildikten sonra, ./automysqlbackup.sh betiği çalıştırıp ilk yedek alınabilir. Yedekler öntanımlı olarak /backups dizini altına alacaktır.

Kaynakça