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?
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.
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).
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.
Respostas:
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:
sdXN
por enquanto).Mova o diretório de dados mysql do Ubuntu para a nova partição.
usando
mv
salva permissões.Crie um novo diretório 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.Para montar automaticamente na inicialização, localize a partição UUID e o código do idioma e edite
/etc/fstab
.Altere o caminho 'datadir'
/etc/mysql/my.cnf
para 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' paraX:/mysql_data
(substituaX:
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
fonte
lower_case_table_names=1
lo funciona bem. Sem as suas opções de montagem, encontrei este bug (que é realmente um erro).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/mysql
executar na inicialização (supondo que você monte sua unidade Windows/media/windows
usando 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
, adicioneinnodb_log_group_home_dir = /var/log/mysql
para que os logs sejam próximos ao log de erros do mysql.fonte