MySQL sunucusu kurulumu ve kullanımı: Revizyonlar arasındaki fark

Ubuntu Türkiye Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla
k (Konum şablonunu kaldır)
 
(4 kullanıcıdan 10 ara revizyon gösterilmiyor)
1. satır: 1. satır:
== MYSQL Pakedini PHP5 ile Kurmak ==
== MYSQL paketini PHP5 ile kurmak ==
Paket yöneticisi ya da belirtildiği gibi komut satırından mysql-server libapache2-mod-auth-mysql php5-mysql paketlerini kurulmalıdır. Bu işlemi şu kod ile yapabilirsiniz.
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.


{{kod||sudo aptitude install mysql-server libapache2-mod-auth-mysql php5-mysql}}
{{uçbirim|sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql}}


==MYSQL Pakedini PHP 4 ile Kurmak ==
== MySQL paketini PHP4 ile kurmak ==
İlk olarak, bu paketler main deposunda olmadığından [[universe]] deposu etkinleştirilmelidir.
İ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 kodu kullanılabilir.
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.
{{kod||sudo aptitude install mysql-server libapache2-mod-auth-mysql php4-mysql}}
{{uçbirim|sudo apt-get install mysql-server libapache2-mod-auth-mysql php4-mysql}}


== MySQL Bind adreslerini atamak ==


=== 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.'''


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.
 
{{uçbirim|sudo gedit /etc/mysql/my.cnf}}
Mysql yapılandırma dosyasını değiştirmek için şu komutla dosyayı açabilirsiniz.
{{kod||sudo gedit /etc/mysql/my.cnf}}


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


{{dosya|/etc/mysql/my.cnf|<nowiki>bind-address          = localhost</nowiki>}}
{{uçbirim|/etc/mysql/my.cnf|<nowiki>bind-address          = localhost</nowiki>}}


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.
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.


{{dosya|/etc/mysql/my.cnf|<nowiki>bind-address          = 192.168.1.20</nowiki>}}
{{uçbirim|/etc/mysql/my.cnf|<nowiki>bind-address          = 192.168.1.20</nowiki>}}
   
   
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 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.
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 ==


=== 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.
 
{{uçbirim|mysql -u root}}
Veritabanınıza konsoldan erişmeden önce şu kodun yazılarak mysql uçbirimine ulaşılması gerekir. bu uçbirime şu komutla ulaşabilirsiniz.
{{kod||mysql -u root}}
Eğer hali hazırda kurulum evresinde belirlediğiniz bir root şifresi varsa şu komudu kullanmanız gerekir.
Eğer hali hazırda kurulum evresinde belirlediğiniz bir root şifresi varsa şu komudu kullanmanız gerekir.
{{kod||mysql -u root -p}}
{{uçbirim|<nowiki>mysql -u root -p</nowiki>}}


Bu komutları kullandıktan sonra uçbirimdeki komut isteyen yapı değişecektir.
Bu komutları kullandıktan sonra uçbirimdeki komut isteyen yapı değişecektir.
43. satır: 41. satır:
Eğer hali hazırda bir mysql root şifresi atanmamışsa bu durumda şu komut ile yeni şifreyi atayabilirsiniz.
Eğer hali hazırda bir mysql root şifresi atanmamışsa bu durumda şu komut ile yeni şifreyi atayabilirsiniz.


{{kod||SET PASSWORD FOR 'root'@'localhost' = PASSWORD(''''kullanmak istediğiniz şifre'''');}}
{{uçbirim|<nowiki>SET PASSWORD FOR 'root'@'localhost' = PASSWORD(''''kullanmak istediğiniz şifre'''');</nowiki>}}


Başarılı bir mysql komutu aşağıdaki çıktıyı verecektir:
Başarılı bir mysql komutu aşağıdaki çıktıyı verecektir:
51. satır: 49. satır:
Mysql uçbiriminden çıkmak için şu komutu kullanabilirsiniz
Mysql uçbiriminden çıkmak için şu komutu kullanabilirsiniz


{{kod||\q}}
{{uçbirim|\q}}


Mysql komutları çok sayıda satırdan oluşabilir. Mysql komutunuzu noktalı virgül (;) ile bitirmeyi unutmayın.
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.
Mysql şifresinin unutulması durumunda [[MySQL sunucusu root şifresinin sıfırlanması]] metodu kullanılabilir.
 


=== Bir mysql veritabanı yaratmak ===
== 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.
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.
{{kod||CREATE DATABASE veritabani1;}}
{{uçbirim|CREATE DATABASE veritabani1;}}
 


=== Bir mysql kullanıcısı yaratmak ===
== 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.
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.
{{kod||GRANT ALL PRIVILEGES ON *.* TO 'kullaniciadi'@'localhost' IDENTIFIED BY 'şifreniz' WITH GRANT OPTION;}}
{{uçbirim|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.
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.


{{kod||GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON veritabani1.* TO 'kullaniciadi'@'localhost' IDENTIFIED BY 'şifre';}}
{{uçbirim|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.
''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 ==
=== 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.
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.
82. satır: 77. satır:


PhpMyAdmin paketini sisteminize kurmak için şu kodda faydalanabilirsiniz.
PhpMyAdmin paketini sisteminize kurmak için şu kodda faydalanabilirsiniz.
{{kod||sudo apt-get install phpmyadmin}}
{{uçbirim|sudo apt-get install phpmyadmin}}
Mysql-admin kurmak için ise şu kodu kullanabilirsiniz:
Mysql-admin kurmak için ise şu kodu kullanabilirsiniz:
{{kod||sudo apt-get install mysql-admin}}
{{uçbirim|sudo apt-get install mysql-admin}}


=== Sorun Giderme ===
== 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.
'''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.
94. satır: 89. satır:
[http://dev.mysql.com/doc/mysql/en/index.html/ MySQL Referans El Kitabı] içindeki [http://dev.mysql.com/doc/mysql/en/default-privileges.html/ 2.9.3. Başlangıç MySQL Hesaplarının Güvenliğini Sağlamak] kısmını okuyabilirsiniz.
[http://dev.mysql.com/doc/mysql/en/index.html/ MySQL Referans El Kitabı] içindeki [http://dev.mysql.com/doc/mysql/en/default-privileges.html/ 2.9.3. Başlangıç MySQL Hesaplarının Güvenliğini Sağlamak] kısmını okuyabilirsiniz.


== Otomatik Yedekleme ==
== 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.
'''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.


108. satır: 103. satır:
Yedekler öntanımlı olarak /backups dizini altına alacaktır.
Yedekler öntanımlı olarak /backups dizini altına alacaktır.


== Kaynak ==
== Kaynakça ==
*[https://help.ubuntu.com/community/ApacheMySQLPHP https://help.ubuntu.com/community/ApacheMySQLPHP]
*[https://help.ubuntu.com/community/ApacheMySQLPHP https://help.ubuntu.com/community/ApacheMySQLPHP]
*[http://halisyalcinkaya.blogspot.com/ http://halisyalcinkaya.blogspot.com/]
*[http://halisyalcinkaya.blogspot.com/ http://halisyalcinkaya.blogspot.com/]
[[kategori:Sunucu Uygulamaları]]
 
[[Kategori:Sunucular]]

22.32, 7 Kasım 2017 itibarı ile sayfanın şu anki hâli

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