• 01-08-2015, 15:40:23
    #1
    Üyeliği durduruldu
    Merhaba

    Centos'a putty ile bağlanıp, sunucudaki bütün mysql veritabanlarını hepsini ayrı ayrı bir şekilde tek klasör içerisinde yedeklemek istiyorum.

    Bu şekilde bir komut var mıdır acaba?

    Bütün sql dosyalarını bir bütün halinde tek parça olarak istemiyorum. Hepsi ayrı ayrı olmalı, zira çok karışıklık yaşıyorum. Bilgisi olan paylaşırsa çok sevinirim.

    Teşekkürler.
  • 01-08-2015, 21:06:40
    #2
    Merhaba,

    Aşağıda ki kodu dener misiniz lütfen?
    dabase_kullanıcı_ismi ve database_ismi olan kısımları kendi veritabanı adı ve kullanıcı adı olarak değiştiriniz.

    veritabanı.sql de SSH da bulunduğunuz dizinin içine export edecektir. /root/veritabani.sql şeklinde yaparsanız /root/ dizini içine çıkartacaktır.

    mysqldump -u database_kullanıcı_ismi -p database_ismi > veritabani.sql
  • 01-08-2015, 23:56:02
    #3
    Üyeliği durduruldu
    zoeken adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    Aşağıda ki kodu dener misiniz lütfen?
    dabase_kullanıcı_ismi ve database_ismi olan kısımları kendi veritabanı adı ve kullanıcı adı olarak değiştiriniz.

    veritabanı.sql de SSH da bulunduğunuz dizinin içine export edecektir. /root/veritabani.sql şeklinde yaparsanız /root/ dizini içine çıkartacaktır.

    mysqldump -u database_kullanıcı_ismi -p database_ismi > veritabani.sql
    Yok hocam, yapmak istediğim o şekilde hepsini bir bütün halinde çıktı almak değil. Her veritabanını kendi başına listeleyerek yedeklemek istiyorum. Diğer türlü o veritabanı tek parça olacak ve hayli şişecek. Phpmyadmin'e onu yüklemek gibi bir zulüm yok.
  • 02-08-2015, 02:55:24
    #4
    Arguman adlı üyeden alıntı: mesajı görüntüle
    Yok hocam, yapmak istediğim o şekilde hepsini bir bütün halinde çıktı almak değil. Her veritabanını kendi başına listeleyerek yedeklemek istiyorum. Diğer türlü o veritabanı tek parça olacak ve hayli şişecek. Phpmyadmin'e onu yüklemek gibi bir zulüm yok.
    Aşağıdaki kodu kullanabilirsin,

    sh mysqlyedekle.sh mysqlrootsifren şeklinde çalıştırmalısın, /root/sqlyedek klasörüne tüm veritabanlarını ayrı ayrı yedekler, ayrıca tarih vererek tek dosya halinde tar.gz ile sıkıştırıp /root dizinine kaydeder.

    #!/bin/sh
    echo "root dizininde sqlyedek klasoru var mi."
    if [ -d '/root/sqlyedek' ]; then
    echo "root dizininde sqlyedek klasoru var."
    else
    echo "root dizininde sqlyedek klasoru yok ama simdi olusturuyorum."
          mkdir /root/sqlyedek
    fi
    echo
    echo "sql yedek almaya basliyor"
    
    
    find /var/lib/mysql/ -type d | cut -d. -f1 | cut -d/ -f5 > /root/list
    _db="$(gawk -F: '{ print $1 }' /root/list)"
    for u in $_db
    do
    
    mysqldump -u root -p$1 ${u} > /root/sqlyedek/${u}.sql
    echo "HAZIR > ${u}"
    done
    
    zaman=`date +"%d.%m.%Y-%T"`
    tar cvzf /root/$zaman-mysql.tar.gz '/root/sqlyedek'
    
    echo "TUM VERI TABANLARI YEDEKLENDI"
    echo "DOSYA YOLU : /root/$zaman-mysql.tar.gz"
  • 02-08-2015, 03:00:21
    #5
    Üyeliği durduruldu
    victories adlı üyeden alıntı: mesajı görüntüle
    Aşağıdaki kodu kullanabilirsin,

    sh mysqlyedekle.sh mysqlrootsifren şeklinde çalıştırmalısın, /root/sqlyedek klasörüne tüm veritabanlarını ayrı ayrı yedekler, ayrıca tarih vererek tek dosya halinde tar.gz ile sıkıştırıp /root dizinine kaydeder.

    #!/bin/sh
    echo "root dizininde sqlyedek klasoru var mi."
    if [ -d '/root/sqlyedek' ]; then
    echo "root dizininde sqlyedek klasoru var."
    else
    echo "root dizininde sqlyedek klasoru yok ama simdi olusturuyorum."
          mkdir /root/sqlyedek
    fi
    echo
    echo "sql yedek almaya basliyor"
    
    
    find /var/lib/mysql/ -type d | cut -d. -f1 | cut -d/ -f5 > /root/list
    _db="$(gawk -F: '{ print $1 }' /root/list)"
    for u in $_db
    do
    
    mysqldump -u root -p$1 ${u} > /root/sqlyedek/${u}.sql
    echo "HAZIR > ${u}"
    done
    
    zaman=`date +"%d.%m.%Y-%T"`
    tar cvzf /root/$zaman-mysql.tar.gz '/root/sqlyedek'
    
    echo "TUM VERI TABANLARI YEDEKLENDI"
    echo "DOSYA YOLU : /root/$zaman-mysql.tar.gz"
    Hocam bu uzun kodu nasıl çalıştıracağım acaba? txt dosyası içine mi kaydetmem gerek? Putty'den yapılmıyor bildiğim kadarıyla.
  • 02-08-2015, 03:03:40
    #6
    Arguman adlı üyeden alıntı: mesajı görüntüle
    Hocam bu uzun kodu nasıl çalıştıracağım acaba? txt dosyası içine mi kaydetmem gerek? Putty'den yapılmıyor bildiğim kadarıyla.
    putty ile sunucunuza bağlanın, nano mysqlyedek.sh komutu ile yeni bir dosya açıp, kodları içine yapıştırın, (putty ekranında sağ tıklarsanız kopyaladığınız yazıyı yapıştırır) ctrl x - y - enter basın kaydeder.

    ardından tek yapmanız gereken sh mysqlyedek.sh mysqlsifreniz şeklinde komut vermek.
  • 02-08-2015, 03:10:14
    #7
    Üyeliği durduruldu
    victories adlı üyeden alıntı: mesajı görüntüle
    putty ile sunucunuza bağlanın, nano mysqlyedek.sh komutu ile yeni bir dosya açıp, kodları içine yapıştırın, (putty ekranında sağ tıklarsanız kopyaladığınız yazıyı yapıştırır) ctrl x - y - enter basın kaydeder.

    ardından tek yapmanız gereken sh mysqlyedek.sh mysqlsifreniz şeklinde komut vermek.
    Komutu çalıştırdım. WinScp ile sunucuya bağlanıp root klasörüne girdim. mysqlyedek isminde bir klasör var orada db isimleri var. Hepsi 0 Kb olarak görünüyor. Bir de direkt root dizininde bugünün tarihiyle bir tar.gz dosyası var o da 1 kb olarak görünüyor. Bu işlem belli bir süreden sonra mı tamamlanıyor acaba? Yoksa hemen mi yapıyor?
  • 02-08-2015, 03:15:09
    #8
    mysql -u root -p

    bu komutu putty den yazıp mysqle bağlanabiliyormusunuz?

    muhtemelen mysql root şifreniz yanlış, veya plesk kullanıyorsanız mysqldump -u root -p$1 kısmındaki root olan kullanıcı adını admin yapmalısınız.
  • 02-08-2015, 03:16:20
    #9
    Üyeliği durduruldu
    Mysql şifresinden kasıt tam olarak nedir? Her db'nin farklı şifresi var. Bundan mı olmuyor acaba?