Posso compartilhar arquivos de banco de dados MySql com o Windows na inicialização dupla?


12

Eu gostaria de usar no Ubuntu e no Windows (inicialização dupla) meus arquivos de banco de dados MySql que residem em uma partição NTFS. será que vai dar certo? Alguma dica?


4
PARA O REGISTRO DA COMUNIDADE: O usuário está perguntando sobre a compatibilidade dos formatos de dados MySQL entre o Ubuntu Linux e o Microsoft Windows. O usuário está se perguntando se os dados armazenados no formato Ubuntu Linux para MySQL são compatíveis com a maneira como a versão Windows do MySQL armazena dados para que as informações do banco de dados possam ser editadas e restauradas no Windows e no MySQL.
Thomas Ward

R: Acabei de fornecer uma resposta abrangente para essa pergunta aqui , no StackExchange do Unix e Linux .
Visualização elíptica

Respostas:


9

Sim, funciona, mas com algumas peculiaridades. O MySQL usa os mesmos formatos de arquivo entre plataformas, então tudo que você precisa é compartilhar o diretório de dados. Um problema é que o diretório de dados precisa ter o mysql como proprietário e grupo no ubuntu. E o Windows faz distinção entre maiúsculas e minúsculas e o Linux faz distinção entre maiúsculas e minúsculas, portanto, mantenha todos os nomes uniformes: o nome inteiro em minúsculas ou maiúsculas, mas não os misture.

Do início ao fim; se você já tiver as coisas configuradas, isso pode precisar de alguns ajustes para se ajustar à sua configuração:

  • Instale e configure o MySQL nos dois sistemas.
  • Pare o servidor mysql, se estiver em execução.
  • Faça uma nova partição NTFS. Marque o nome do dispositivo (vamos chamá-lo sdXNpor enquanto).
  • Mova o diretório de dados mysql do Ubuntu para a nova partição.

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

    usando mvsalva permissões.

  • Crie um novo diretório mysql

    sudo mkdir /var/lib/mysql
    
  • Monte a partição NTFS em /var/lib/mysql. Altere o nome do dispositivo para o que foi obtido quando você criou a partição NTFS.

    sudo mount /dev/{sdXN} /var/lib/mysql -t ntfs-3g -o uid=mysql,gid=mysql,umask=0077
    
  • Para montar automaticamente na inicialização, localize a partição UUID e o código do idioma e edite /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
    
  • Altere o caminho 'datadir' /etc/mysql/my.cnfpara apontar para/var/lib/mysql/mysql_data

  • Inicie o servidor mysql e teste-o.

  • Edite o arquivo de configuração do Windows ( my.ini) e defina 'datadir' para X:/mysql_data(substitua X:para onde você o monta no Windows).

Compilado a partir do tópico 1442148 no UF.org .

Eu tenho a versão do Ubuntu funcionando; tão parcialmente não testado, pois não tenho o Windows


Resposta muito boa! Apenas dois comentários: já existem muitos nomes de casos mistos e usá- lower_case_table_names=1lo funciona bem. Sem as suas opções de montagem, encontrei este bug (que é realmente um erro).
Maaartinus 19/04/12

"sudo mv / var / lib / mysql / dev / {sdXN} / mysql_data" apresenta um erro. Consulte unix.stackexchange.com/questions/310433/…
elíptica

1

Se você adicionou uma partição linux a um ambiente anteriormente somente para Windows, poderá usar o banco de dados no local com apenas alguns pequenos ajustes. Versão longa aqui , versão curta:

Você precisará mount --bind '/media/windows/ProgramData/MySQL/MySQL Server 5.5/data' /var/lib/mysqlexecutar na inicialização (supondo que você monte sua unidade Windows /media/windowsusando o fstab).

Para contornar a verificação do tamanho do log do innodb, você precisará mover os logs do innodb para a partição ubuntu. Em my.cnf, adicione innodb_log_group_home_dir = /var/log/mysqlpara que os logs sejam próximos ao log de erros do mysql.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.