Çift önyüklemede MySql veritabanı dosyalarını Windows ile paylaşabilir miyim?


12

Bir NTFS bölümünde bulunan MySql veritabanı dosyalarımı Ubuntu ve Windows (çift önyükleme) içinde kullanmak istiyorum. Çalışacak mı? Anladınız mı?


4
TOPLUM KAYDI İÇİN: Kullanıcı Ubuntu Linux ve Microsoft Windows arasında MySQL veri formatlarının uyumluluğunu soruyor. Kullanıcı, MySQL için Ubuntu Linux biçiminde saklanan verilerin MySQL'in Windows sürümünün verileri depolama biçimiyle uyumlu olup olmadığını merak ediyor, böylece veritabanı bilgileri hem Windows hem de MySQL'de düzenlenebilir ve geri yüklenebilir.
Thomas Ward

C: Sadece bu soruya kapsamlı bir cevap vermiş burada yer, Unix & Linux Stack Exchange .
Eliptik görünüm

Yanıtlar:


9

Evet, çalışıyor ama bazı tuhaflıklar var. MySQL, platformlarda aynı dosya biçimlerini kullanır, bu nedenle tek ihtiyacınız olan veri dizinini paylaşmaktır. Bir sorun veri dizinin ubuntu sahibi ve grup olarak mysql olması gerektiğidir. Ve Windows büyük / küçük harfe duyarlı değildir ve Linux büyük / küçük harfe duyarlıdır, bu nedenle tüm adları tekdüze tutun: ya küçük harf ya da büyük harf, ancak bunları karıştırmayın.

Başlangıçtan bitime; önceden ayarlanmış bir şeyiniz varsa, bunun kurulumunuza uyması için bazı ayarlamalar yapmanız gerekebilir:

  • Her iki sisteme de MySQL kurun ve kurun.
  • Çalışıyorsa mysql sunucusunu durdurun.
  • Yeni bir NTFS bölümü oluşturun. Cihaz adını işaretleyin ( sdXNşimdilik arayalım ).
  • Mysql veri dizinini Ubuntu'dan yeni bölüme taşıyın.

    mkdir /{mountpoint}/mysql_data
    sudo mv /var/lib/mysql /{mountpoint/mysql_data
    

    kullanarak mvtasarruf izinleri.

  • Yeni bir mysql dizini oluşturun

    sudo mkdir /var/lib/mysql
    
  • NTFS bölümünü adresinde bağlayın /var/lib/mysql. NTFS bölümünü oluşturduğunuzda, cihaz adını değiştirin.

    sudo mount /dev/{sdXN} /var/lib/mysql -t ntfs-3g -o uid=mysql,gid=mysql,umask=0077
    
  • Önyüklemede otomatik sayı oluşturmak için UUID bölümünü ve yerel ayarı bulun ve düzenleyin /etc/fstab.

    ls -l /dev/disk/by-uuid
    locale -a
    sudo gedit /etc/fstab   
    UUID={number_found_with_the_ls-l} /var/lib/mysql ntfs-3g uid=mysql,gid=mysql,umask=0077,locale={your_locale}.utf8  0  0
    
  • İçinde 'datadir' yolunu değiştirin /etc/mysql/my.cnfişaret edecek/var/lib/mysql/mysql_data

  • MySQL sunucusunu başlatın ve test edin.

  • Windows yapılandırma dosyasını ( my.ini) düzenleyin ve 'datadir' olarak ayarlayın X:/mysql_data( X:Windows altında bağladığınız yerin yerine koyun).

Konu 1442148'den UF.org'da derlenmiştir .

Ubuntu sürümünü çalıştırdım; Windows olmadığım için kısmen denenmemiş


Çok güzel bir cevap! Sadece iki yorum: Zaten çok sayıda karışık vaka adı var ve lower_case_table_names=1bunu kullanmak iyi çalışıyor. Bağlama seçenekleriniz olmadan bu hataya rastladım (IMHO gerçekten bir hata).
maaartinus

"sudo mv / var / lib / mysql / dev / {sdXN} / mysql_data" hata veriyor. Bkz. Unix.stackexchange.com/questions/310433/…
Eliptik görünüm

1

Önceden yalnızca Windows ortamına bir linux bölümü eklediyseniz, veritabanını yalnızca bazı küçük ayarlarla kullanabilirsiniz. Burada uzun versiyon , kısa versiyon:

mount --bind '/media/windows/ProgramData/MySQL/MySQL Server 5.5/data' /var/lib/mysqlBaşlangıçta çalıştırmanız gerekir (Windows sürücünüzü /media/windowsfstab kullanarak bağladığınızı varsayarak ).

Innodb'un günlük boyutu denetimini atlatmak için ubuntu bölümü için innodb günlüklerini taşımanız gerekir. İçinde my.cnf, innodb_log_group_home_dir = /var/log/mysqlgünlükleri mysql hata günlüğünün yanına gidecek şekilde ekleyin .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.