[Çözüldü] Harici bir bölümde MySQL ile çalışmak

Başlatan ImpossibleIsNothing, 18 Şubat 2010 - 21:36:26

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

ImpossibleIsNothing

"heartsmagic" hocam sanırım konunun bölümlemeyle ilgisi kalmadı...
Tahminim sorun MySQL, Ubuntu yada benim sistemim.
Yapılabilecek herşeyi denedim ama bi türlü olmadı.Denediklerim :
1- Önce MySQL i durdurdum
sudo /etc/init.d/mysql stop
Daha sonra /etc/mysql/my.cnf içindeki datadir özelliğini şu şekilde değiştirdim:
datadir=/media/Ortak/MySQLDATA
sonra erişim izinleri değişmesin diye /var/lib/mysql içeriğini /media/Ortak/MySQLDATA dizininin içine kopyaladım:
sudo cp -pr /var/lib/mysql/* /media/Ortak/MySQLDATA/
Arkasından MySQL i yeniden başlattım:
sudo /etc/init.d/mysql start
Sonuç: Başarısız.

2- Önce MySQL i durdurdum
sudo /etc/init.d/mysql stop
Daha sonra /etc/mysql/my.cnf içindeki datadir özelliğini eski haline döndürdüm:
datadir=/var/lib/mysql
sonra /var/lib/mysql dizinini tümüyle  /media/Ortak/MySQLDATA dizinine taşıdım(/media/Ortak/MySQLDATA/mysql bu şekide oldu) :
sudo mv /var/lib/mysql /media/Ortak/MySQLDATA/
sonra sembolik bağ oluşturdum :
sudo ln -s /media/Ortak/MySQLDATA/mysql /var/lib/mysql
Arkasından MySQL i yeniden başlattım:
sudo /etc/init.d/mysql start
Sonuç: Başarısız.

Yukarıdaki işlemleri denerken /(ana dizin) ve /home/kullanıcı_hesabı/ içinde de deneme yaptım fakat yine olmadı. MySQL i tamamen kaldırıp tekrar kurmamda bir fayda sağlamadı.

NOT: Yukarıdaki işlemlerin http://www.syslogs.org/2009/04/mysql-data-dizininin-yerinin-degistirilmesi/ adresinde olumlu sonuçlanacağı yazıyor fakat sonuçlar bende başarız.
Birgün Mikropsoft batacak herkes huzura kavuşacak...

heartsmagic

Kaynağımı yazı sonunda belirteceğim, ancak buradaki adımlar yapılırsa sorunsuzca gerçekleşiyor işlem. Fakat ufak bir not düşmem gerekecek yine yazı sonunda. Burada mysql verilerini taşıyacak dizin ismi örneği şu olacaktır: /media/yedek/mysql

Öncelikle mysql servisini durduruyoruz:
sudo /etc/init.d/mysql stop

Ardından mysql dosyalarını bulunduracak dizini oluşturuyoruz:

sudo mkdir /media/yedek/mysql


Daha sonra mysql dosyalarımızı bu yeni dizine kopyalıyoruz:
sudo cp -pr /var/lib/mysql/* /media/yedek/mysql

Mysql yapılandırma dosyamızı buna göre düzenliyoruz.
sudo gedit /etc/mysql/my.cnf
ile açacağımız dosyadaki şu değişiklikleri yapıyoruz:

Alıntı Yap#datadir      = /var/lib/mysql
datadir      = /media/yedek/mysql/

Görüldüğü üzere asıl satırın başına # eklendi ve bir alt satıra bizim dizinimisi işaret eden yeni bir giriş eklendi.

Bu değişiklik yapılsa bile Apparmor nedeniyle mysql yeni dizinimizden çalışmayacaktır. Bunu da ayarlamamız gerekiyor.

sudo gedit /etc/apparmor.d/usr.sbin.mysqld

ile açacağımız dosyada şu değişikliği yapıyoruz:

Alıntı Yap#  /var/lib/mysql/ r,
#  /var/lib/mysql/** rwk,
  /media/yedek/mysql/ r,
  /media/yedek/mysql/** rwk,


Görüldüğü üzere asıl olan iki satırın başına yine # koyduk ve altına kendi ayarlamızı tutan satırları ekledik. Virgüllere dikkat lütfen, önemli bir ayrıntıdır.

Şimdi Apparmor'u yeniden yüklüyoruz:
sudo /etc/init.d/apparmor reload

Ardından mysql'i başlatıyoruz:
sudo /etc/init.d/mysql restart

Şimdi, geleyim üzücü habere. Bu işlemi ext3 biçimli bölümümde denediğimde hiç sorun çıkartmadan çalıştı. Fakat ntfs biçimli harici diskimde işe yaramadı. Sebep olarak aklıma haliyle dosyaların kullanıcı sahipliği geldi. ext3 üzerinde sistemde olduğu gibi mysql olarak kalmakta. Fakat ntfs olan diskte bu eziliyor haliyle, zira ntfs tutamıyor bu bilgileri. Orada sahiplik diskin bağlandığı kullanıcıya ait. mysql.cnf içinde user kısmını kendi kullanıcım yaptım ancak yine çalışmadı. Bu konuda biraz daha bakınmak gerekebilir.

Kaynak:
http://www.ubuntugeek.com/how-to-change-the-mysql-data-default-directory.html
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

ImpossibleIsNothing

#2
"heartsmagic" hocam merhaba.

sudo gedit /etc/apparmor.d/usr.sbin.mysqld
bu dosyayı bulamadığım için 2-3 gündür uğraşıyordum.
Şuan için sorun çözüldü sorunsuzca db oluşturma ve silme yapabiliyorum.

Alıntı YapŞimdi, geleyim üzücü habere. Bu işlemi ext3 biçimli bölümümde denediğimde hiç sorun çıkartmadan çalıştı. Fakat ntfs biçimli harici diskimde işe yaramadı. Sebep olarak aklıma haliyle dosyaların kullanıcı sahipliği geldi. ext3 üzerinde sistemde olduğu gibi mysql olarak kalmakta. Fakat ntfs olan diskte bu eziliyor haliyle, zira ntfs tutamıyor bu bilgileri. Orada sahiplik diskin bağlandığı kullanıcıya ait. mysql.cnf içinde user kısmını kendi kullanıcım yaptım ancak yine çalışmadı. Bu konuda biraz daha bakınmak gerekebilir.

Yukarıda belirttiğin sorun tahminimce (tabi sen varken bana tahmin yapmak düşmez ama :))
1-Diskin harici disk olduğu için
2-mount edilirken oluşmuş eksik erişim izinlerinden kaynaklaıyor olabilir.
drwxrwxrwx 1 root root 4096 2010-02-19 04:46 MySQLDATA
Bu benim mysql datadir için kullandığım klasörün izinleri...

Yardımların için çoook teşekkür ederim...

Konunun tam olarak anlaşılması ve aynı dertten yakınan arkadaşlar için burada LAMP için Windows ve Linux ten ortak kullanım genel bir anlatım var hocam sabitlersen tüm arkadaşlar rahatça faydalanabilir.

Burasıda kilitlenebilir. :)
Birgün Mikropsoft batacak herkes huzura kavuşacak...

garafatma

Bira, Tanrı'nın bizi sevdiğinin ve eğlenmemizi istediğinin kanıtıdır.

>-- Askıdaki Çeviri --< Ubuntu Türkçe Çevirilerine Sizde Destek Olun
Elveda metal müziğin tanrısı... \m/ Ronnie James DIO: 1942 - 2010

heartsmagic

Meseleyi çözdüğüne sevindim. Açıkçası ben yetkilendirme meselesinden olmuştur diye tahmin ediyordum. Fakat root sahipli bir dizinde iş görüyorsa bu sevindim. Konutu etiketleyip kapatalım o halde.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.