Tenho o MySql instalado numa maquina Windows e em um servidor Linux.
A maquina Windows uso como servidor de desenvolvimento, com o banco local.
A maquina Linux uso como servidor de produção.
Não sei como se é alguma configuração no momento da instalação ou que pode ser feita no próprio MySql, mas as tabelas que crio no Windows ficam com essa DDL:
Problemas você vai ter com certeza; não use MyISAM a menos que essa tabela seja usada apenas para leitura e nunca seja usada com fins transacionais (é o método mais rápido de acesso, mas é o mais inseguro).
Deixe as tabelas do Linux como estão no Windows ( ENGINE=InnoDB DEFAULT CHARSET=latin1 ).
Acho que há alguma configuração padrão para que o padrão de criação de tabelas seja InnoDB em vez de MyISAM, mas não sei onde fica isso. Prefiro mencionar isso explicitamente na hora de criar as tabelas.
Permitam-me uma carona na pergunta do colega. Tendo duas bases de dados distintas é possível criar um select em tabelas das duas direto no MySql, por exemplo:
Select * from SERVIDOR1.BANCO.TABELA T1, SERVIDOR2.BANCO.TABELA T2;
Antes que alguém sugira já googlei bastante este assunto e não encontrei nada.
Antes de mais nada muito obrigado pela resposta.
(…)code
ENGINE=InnoDB DEFAULT CHARSET=latin1
[/code]
E tentei executar no Linux, no entando ele esta dando erro no DEFAULT CHARSET=latin1, se eu tiro essa informação ele cria a tabela como ENGINE=InnoDB.
Ou seja, fica assim:
(...)
) TYPE=InnoDB
Você tem idéia do que isso significa e se pode causar algum problema ?
[]s[/quote]
[quote]Its not possible that you backed up from a server running 4.0.x if you are getting the ‘DEFAULT CHARSET’ bit in your backup. You had to be running 4.1.x
You will either need to edit the sql file and remove the occurences of
DEFAULT CHARSET = latin1
Or redump issuing the version command.[/quote]
Uso o parâmetro de compatibilidade (nos links acima tem maiores detalhes).
Então senta e chora. Não há como fazer um sql acessar dois dbs diferentes no MySQL sem as opções relacionadas, aliás, elas existem para isso. Se houvesse outra maneira que não precisasse disso, porque iam fazer?
[quote=renatoamorim]
As duas opções citadas por maquiavelbona, ao qual já fica público meu agradecimento, já testado mais não atende pelo seguintes motivos:
Federated exige a reinstalação do mysql com opções especificas (por hora não posso fazer isto);
A primeira sugestão não é o caso, as tabelas estão em base separadas.
Por favor alguém diga que tenho uma terceira opção.[/quote]
Renato,
o h2 database possui linked table que são semelhantes as tabelas vinculadas do access, se a sua aplicação estiver em java, você pode fazer com que as tabelas dos diferentes bancos sejam ligadas pelo h2. A performance desse recurso é muito boa, a única coisa chata é que ele cria uma conexão como banco alvo para cada tabela.
Então senta e chora. Não há como fazer um sql acessar dois dbs diferentes no MySQL sem as opções relacionadas, aliás, elas existem para isso. Se houvesse outra maneira que não precisasse disso, porque iam fazer?
Até![/quote]
Obrigado pela atenção mais não tenho tempo para chorar… Soluções sempre aparecem novas para atender novas exigências. Viva a esperança!