Forum

Mysql 4.0 dan Mysql...
 
Bildirimler
Hepsini Temizle

Mysql 4.0 dan Mysql 5.5 e geçiş

18 Yazılar
3 Üyeler
0 Reactions
3,335 Görüntüleme
(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

Arkadaşlar merhaba

elimde Mysql 4.0 a ait bir database var.Database dosyaları    *.frm   *.myi    *.myd   uzantılı dosyalar.

Mysql 5.5 e geçmek istiyorum mecburiyetlerden dolayı.Ama 5.5 de database yapısı farklı anladığım kadarıyla.

4.0 a ait database i  5.5 e aktarma şansım varmı?

varsa nasıl bir yol izlemem gerekiyor.

Yardımcı olursanız sevinirim.

 

 
Gönderildi : 28/02/2012 14:43

(@mustafagokhankurt)
Gönderiler: 294
Reputable Member
 

Ben olsaydım ve eğer makine vm olsaydı snapshot veya backup alırdım ve # rpm -Uvh ile mysql'i update ederdim. Çok fazla dependency olursa ilk önce 5.0 daha sonra 5.5'e geçerdim.

RHEL 5.5 iso'sunda mysql 5.0 paketlerinin tümü var. Mysql 5.5 de herhalde RHEL 5.7 de veya 6.0 da vardır.

 
Gönderildi : 28/02/2012 16:50

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

MyISAM dan bahsediliyor.Bu database yapısında frm myi myd uzantılı imiş database dosyaları.ama nedense ben elimdeki database i sisteme gördüremedim.default \data klasörüne attım database dosyasını ama görmedi sistem.

mysql upgrade olayını araştırayım .

 
Gönderildi : 28/02/2012 18:03

(@mustafagokhankurt)
Gönderiler: 294
Reputable Member
 

Makinenin backup'ını geri dönebiyorsan varolan paketleri upgrade etmen yeterli olacaktır.

#rpm -qa | grep mysql    // ile mysql paketlerini görebilirsin. Aynı paketleri -Uvh ile upgrade edeceksin. U=update

#rpm -Uvh mysql_xxy1  // gibi. Varolanları upgrade ettikten sonra sistemin 5.5 üzerinden çalışmaya devam edecektir.

Backup'ını sağlam al kafan rahat olsun.

 
Gönderildi : 28/02/2012 18:33

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

valla mysql konusunda pek bilgim yok.

yazdığınız komutları nereden çalıştıracağız?

benim mysql server windows 2000 üzerinde çalışıyor,depo otomasyon programının verilerini tutuyor, bilginize.

 
Gönderildi : 28/02/2012 18:44

(@OnurVARGUN)
Gönderiler: 157
Estimable Member
 

Yedeğini alıp mysql 5.5 üzerinde çalıştırmayı denediniz mi?

 
Gönderildi : 28/02/2012 18:58

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

denedim.Database in dosyalarının bulunduğu klasörü 5.5 in data klasörüne attım.Servisi restart ettim.Olmadı.4.0 da bu şekilde çalışıyor.

5.5 bilgim yok.

Database i 5.5 e attach etmenin özel bir yolumu var acaba?

 
Gönderildi : 28/02/2012 19:03

(@OnurVARGUN)
Gönderiler: 157
Estimable Member
 

Benim söylemek istediğim sql in direkt yedeğini almanız ve aldığınız sql yedeğini mysql 5.5 üzerinde çalıştırmanızdır.

Mysql e hangi görsel programla bağlanıyorsunuz

 
Gönderildi : 28/02/2012 19:06

(@mustafagokhankurt)
Gönderiler: 294
Reputable Member
 

Kardeş, burası Linux&Unix forumu. Yazdığım komutlar linux komutu. Senin sistem Win2000 miş. Deneyimim yok kusura bakma  🙂

 
Gönderildi : 28/02/2012 19:16

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

5.5 e MySQL Workbench 5.2 ile bağlanıyorum.

4.0 da MySQL-Front kullanıyordum.

4.0 da öyle özel bir işlem yok yedekleme için.Databsein dosyalarının bulunduğu klasörü kopyalayarak yedek alınabiliyor sadece.

Bende elimdeki database klasörünü alıp 5.5 in data klasörüne atıyorum.yani C:\Program Files\MySQL\MySQL Server 5.5\data klasörüne atıyorum.

ama sistem bu attığım klasörü görmüyor.

 
Gönderildi : 28/02/2012 19:21

(@OnurVARGUN)
Gönderiler: 157
Estimable Member
 

bu işlemi komut satırından çözebilirsiniz

Öncelikle mysql4.4 kurulu sunucunuzda komut satırını açın

mysqldump yazıp enter a basın bakalım mysqldump ı bulacakmı yoksa mysql in bin dosyasına gidip orda çalıştırmalısınız

öncelikle yedek almak için 

mysqldump -u veritabanikullaniciadi -p --opt veritabaniadi > yedek.sql

bu komutla yedek.sql adlı bir dosyaya sql yedeklerini atar

bundan sonraki adımda aldığınız bu sql yedeğini mysql5.5 kurulu olan bilgisayarda çalıştırmalısınız

mysql 5.5 kurulu bilgisayara geçiyorsunuz ve aşağıdaki komutu çalıştırıyorsunuz

mysql -u veritabanikullaniciadi -p --database=veritabaniadi < yedek.sql

 

 
Gönderildi : 28/02/2012 19:40

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

yazdığınız şekilde 4.0 dan database yedeğini aldım.

5.5 e aktarırken şöyle bir hata alıyorum:

ERROR 1064 (42000) at line 11: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the
right syntax to use near 'TYPE=MyISAM' at line 22

 

sanırım uyum sorunu var 4.0 ile 5.5 arasında.

 
Gönderildi : 29/02/2012 13:46

(@OnurVARGUN)
Gönderiler: 157
Estimable Member
 

Yedek aldığın sql dosyasını açıp 22 nolu satırı yazarmısın

 
Gönderildi : 29/02/2012 14:36

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

komut şöyle başlıyor  ;

CREATE TABLE alt_satirlar (
  Alt_Id int(10) unsigned NOT NULL auto_increment,
  Ust_Id int(10) unsigned default '0',
  Ayirac int(6) unsigned default '0',
  Barhrkt_Id int(10) unsigned default '0',
  Miktar double default '0',
  commc double default '0',
  user_id int(6) unsigned default NULL,
  user_tarih date default NULL,
  user_time varchar(10) default NULL,
  Cikis_Metre double default '0',
  Cikis_Net_Kg double default '0',
  Cikis_Brut_Kg double default '0',
  CIKIS_ADET double default '0',
  GIRIS_ADET double default '0',
  GIRIS_DEPO_ID int(6) unsigned default '0',
  CIKIS_DEPO_ID int(6) unsigned default '0',
  UNIQUE KEY Alt_Satirlar_Id (Alt_Id),
  KEY Ust_Id (Ust_Id),
  KEY Stok_Id (Barhrkt_Id),
  KEY Ayirac (Ayirac)
) TYPE=MyISAM;      
        

 

bu son satır 22. satır oluyor

 
Gönderildi : 29/02/2012 16:12

(@OnurVARGUN)
Gönderiler: 157
Estimable Member
 

TYPE=MYISAM olan satırları tüm dosya içinde ENGINE=MYISAM olarak değiştirip deneyebilirmisiniz.

 
Gönderildi : 29/02/2012 16:40

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

değidiğiniz gibi ENGINE=MYISAM yaptım tüm satırlarda.Bu sefer o satırda hata vermedi.

Ancak 3919236 nolu satırda şöyle bir hata verdi:

C:\Program Files\MySQL\MySQL Server 5.5\bin>mysql -u root -p has < yedek.sql
Enter password: ****
mysql: Unknown OS character set 'cp857'.
mysql: Switching to the default character set 'latin1'.
ERROR 1064 (42000) at line 3919236: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for
 the right syntax to use near 'Not varchar(255) default NULL,
  Terbiye_Prosesi varchar(150) default NULL,
  Fi' at line 93

 

Karakter setleriyle ilgilimi bu problem acaba.

Anladığım kadarıyla benim 4.0 da karakter seti olarak cp857 kullanılmış.

Şimdi 5.5 de karakter setlerinde cp857 yok.

 
Gönderildi : 29/02/2012 18:40

(@OnurVARGUN)
Gönderiler: 157
Estimable Member
 

yedek alma komutunu aşağıdaki gibi tekrarlarmısın 

mysqldump -u veritabanikullaniciadi -p   --no-tablespaces   --default-character-set=latin5  --opt veritabaniadi > yedek.sql

 
Gönderildi : 29/02/2012 19:03

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

onur hocam sabırla yardımcı olma isteğin için özellikle teşekkür ederim sana.

Database i 5.5 e aktardım .Yedek alıp geri yükleyerek değil.Database in klasörünü yanlış yere atıyormuşum bu zamana kadar.

Sizi boşuna yordum kusura bakmayın.

Database i aktardım aktarmasına fakat bu seferde otomasyon programı 5.5 te çalışmadı.Program açılırken garip hatalar çıkıyor.

 örneğin programın exe sini çalıştırdığımda şöyle bir hata aldım:

 dbq2_depo: Type mismatch for field 'Depolar', expecting: String actual: unknown

  sanırım bu aldığım hatalar da karakter set ile ilgili.

5.5 de cp857 karakter seti olmadığı için latin5 olarak aldım database i.

 

MySQL Workbench ten databasedeki table ların içine girmek istediğimde şöyle bir hata alıyorum:

0    16:43:57    SELECT * FROM 2009.depo    Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2009.depo' at line 1
 

 

 
Gönderildi : 29/02/2012 19:53

Paylaş: