Olá galera,
Eu uso “SELECT @@basedir” para pegar o diretório de instalação do MySql para utilizar uma funcionalidade que chama o mysqldump.exe na pasta bin desse diretório. Bom, o que quero saber é, quando estou em uma máquina que acessa o MySql de uma outra máquina (servidor com mysql), como faço pra saber qual o caminho para eu me referenciar ao MySql do servidor? Já que esse select vai me retornar algo como C:/Arquivos d… e se eu utilizar esse caminho ele vai apontar para esse diretório na minha máquina sendo que não deve ser.
Outro problema semelhantes é o “System.getProperty(“user.home”)”, ele me retorna o caminho para minha pasta de usuário! Como faço pra pegar o caminho para a pasta de usuário logado no servidor e não na minha máquina local?
Se você usar este select numa conexão com o servidor, ele vai te retornar o caminho relativo à instalação do servidor, certo?
Como você pretende executar este programa lá no servidor? Você não pode fazer isto diretamente a partir do seu programa. Vai precisar de um programa no servidor pra fazer isso pra vc ou de acesso ssh ou algo do gênero.
Bom, basicamente você não vai poder fazer isso do jeito que vocé está pensando.
Você pode, nesse computador local, instalar alguns dos programas do MySQL, incluindo o mysqldump, e acessar esse banco de dados remotamente
Uma coisa parecida com o que você quer fazer (e que não existe no MySQL por razões de segurança) existe no MS SQL Server - a stored procedure “xp_cmdshell” que força a execução de um comando no servidor.
Agora a segunda coisa que você pediu eu não entendi muito bem o que você quer fazer.
[quote=wagnerfrancisco]Se você usar este select numa conexão com o servidor, ele vai te retornar o caminho relativo à instalação do servidor, certo?
Como você pretende executar este programa lá no servidor? Você não pode fazer isto diretamente a partir do seu programa. Vai precisar de um programa no servidor pra fazer isso pra vc ou de acesso ssh ou algo do gênero.[/quote]
É uma aplicação desktop (Swingão) rodando no cliente com acesso ao banco de dados de uma outra máquina, ok!?! Quando faço esse comando, o retorno é o caminho como se eu tivesse no servidor (C:/Arquivos de pro… /Mysql), mas esse caminho não representa o caminho realmente que eu quero… pq vou precisar executar um arquivo que esta nesse diretório, só que no servidor, não na minha máquina local. E se eu considerar esse caminho ele vai “entender” como se esse caminho fosse na minha máquina entendeu?
[quote=entanglement]Bom, basicamente você não vai poder fazer isso do jeito que vocé está pensando.
Você pode, nesse computador local, instalar alguns dos programas do MySQL, incluindo o mysqldump, e acessar esse banco de dados remotamente
Uma coisa parecida com o que você quer fazer (e que não existe no MySQL por razões de segurança) existe no MS SQL Server - a stored procedure “xp_cmdshell” que força a execução de um comando no servidor.
Agora a segunda coisa que você pediu eu não entendi muito bem o que você quer fazer. [/quote]
Quando estou executando o comando @@basedir estou conectado ao mysql do servidor, mas ele retorna o caminho do diretório de instalação do banco no servidor… eu preciso de alguma maneira converter, sei lá, esse caminho para um caminho no qual eu possa “entrar” supondo que eu copie e cole num EXECUTAR da vida…
se eu siplesmente copiar e colar esse caminho no executar ele vai pocurar o diretório na minha máquina e não no servidor … complicado explicar =S
Vou fazer uma perguntinha bem boba. O MySQLDump que você quer executar - você está querendo que o arquivo .SQL gerado permaneça no servidor, ou então que ele fique na sua máquina cliente?
o backup deve ser executado no mysql no servidor e o arquivo gerado deverá ficar na pasta de usuário do servidor também!
Certo. Esse backup é diário e automatizado ou é invocado por um comando do usuário?
Se for diário e automatizado, você deveria usar alguma solução que chame periodicamente o mysqldump.
Se for por um comando do usuário, você pode tentar invocar esse comando remotamente, talvez usando algo como um “remote shell” (como o ssh).
[quote=entanglement]Certo. Esse backup é diário e automatizado ou é invocado por um comando do usuário?
Se for diário e automatizado, você deveria usar alguma solução que chame periodicamente o mysqldump.
Se for por um comando do usuário, você pode tentar invocar esse comando remotamente, talvez usando algo como um “remote shell” (como o ssh). [/quote]
ambos… não entendi a sua solução…
[quote=wellingtonfoz][quote=wagnerfrancisco]Se você usar este select numa conexão com o servidor, ele vai te retornar o caminho relativo à instalação do servidor, certo?
Como você pretende executar este programa lá no servidor? Você não pode fazer isto diretamente a partir do seu programa. Vai precisar de um programa no servidor pra fazer isso pra vc ou de acesso ssh ou algo do gênero.[/quote]
É uma aplicação desktop (Swingão) rodando no cliente com acesso ao banco de dados de uma outra máquina, ok!?! Quando faço esse comando, o retorno é o caminho como se eu tivesse no servidor (C:/Arquivos de pro… /Mysql), mas esse caminho não representa o caminho realmente que eu quero… pq vou precisar executar um arquivo que esta nesse diretório, só que no servidor, não na minha máquina local. E se eu considerar esse caminho ele vai “entender” como se esse caminho fosse na minha máquina entendeu?[/quote]
Cara, não misture sua aplicação com administração de infra. Se você precisa tirar dump do seu banco, conecte no servidor através de ssh ou desktop remoto e tire o dump.