EXECUTAR QUERY NO MYSQL - PERGUNTA DE LEIGO

LCSD 10/10/2009 09:14:35
#324964
Pessoal, bom dia.....

Precisarei instalar meus sistemas em clientes (e hoje ainda vou ter que fazer isso), e precisarei instalar na máquina do cliente o MySQL.
Até aí, sem problemas. Instalo. Só que eu não queria ter que instalar o software FRONT dele no cliente, mas eu preciso criar 1 banco de dados e as tabelas deste banco lá no cliente.
No meu FRONT aquí em desenvolvimento, eu criei já o .SQL de criação de toda a estrutura, mas como EXECUTAR este .SQL no MySQL sem ser pelo front??? Alguém poderia me dar um HELP????
TECLA 10/10/2009 09:21:48
#324966
LCSD,

O MySQL possui uma ferramenta de administração do tipo MS-DOS (linha de comando).

Se não me engano, você encontra a ferramenta no diretório \mysql\bin.
Exemplo:

mysql -u root -p
password: *****

create database tecla

use tecla

create table teste...
LCSD 10/10/2009 09:25:12
#324968
TECLA, até aí eu sei que tem eu utilizar o MySQL como se fosse MS-DOS.....
O meu problema seria como dar o seguinte comando (mais ou menos assim).

EXECUTAR QUERY.SQL (QUERY.SQL é o arquivo que eu tenho onde está todo o SCRIPT de geração de tabelas e banco de dados)
TECLA 10/10/2009 09:32:08
#324970
Tente assim:

LOAD DATA INFILE [ô]query.sql[ô] INTO TABLE banco.tabela;
TECLA 10/10/2009 09:34:52
#324971
Segue o link do MANUAL MySQL com este, e outros inúmeros comandos.
LOAD DATA INFILE Syntax
LCSD 10/10/2009 09:53:48
#324972
Tecla, o meu arquivo tá gerado da seguinte forma. Dê uma olhada.

Como vou abrir este arquivo lá, é isso que não estou entendendo/sacando como fazer (ser um LEIGO nessa MELECA é foda).


IMAGINEMOS que este arquivo está no app.path do meu exe ([Ô]C:\\SISTEMA[Ô]), como vou executá-lo dentro dos comando do MySQL e exe rodar este SCRIPT todo????
FOXMAN 10/10/2009 11:20:46
#324976
Luiz,
Eu ainda qdo desenvolvia para vb6, desenvolvi duas formas de fazer isso

A primeira , dentro do meu próprio sistema eu tinha um instalador que verificava se era a primeira execução.

A segunda , um arquivo .bat, que era executado antes da instalação.
Esse arquivo .bat, setava o diretorio do mysql, executava os comandos gerando os bancos.

Abaixo o arquivo .bat.

Citação:

@ECHO OFF

@REM Set dir variables. Use ~1 format in win2k
SET basedir=C:\BACKUP
SET workdir=c:\BACKUP
SET mysqldir=C:\MySQL\MySQL Server 6.0.2\bin
SET NOMEBANCO=TEST
REM SET gzipdir=c:\PROGRA~1\GnuWin32\bin
SET mysqlpassword=SENHA_USER_ROOT
SET mysqluser=root

@REM Change to mysqldir
CD %mysqldir%;

@REM dump database. This is all one line
@rem mysqldump -u %mysqluser% -p%mysqlpassword% --compact NOMEBANCO movprodsaida vendas -t -n >%workdir%\backup.sql
mysql -u %mysqluser% -p%mysqlpassword% %NOMEBANCO% <%workdir%\PERICIA.SQL


@REM Change to workdir
CD %workdir%

@REM Zip up database
@rem %gzipdir%\gzip.exe backup.sql

@REM Move to random file name
@REM MOVE backup.sql.gz backup.%random%.gz

@REM FTP file to repository
@REM FTP -n -s:%basedir%\ftp-commands.txt

@REM Remove old backup files
@REM del backup.sql
@REM del backup.*.gz

@REM Change back to base dir
@CD %basedir%



Detalhe :

Com o seu script pericia.sql, ocorreram erros no meu servidor, pode ser configurações, testei com o meu script e funfou legal.

segue exemplo do meu script.

Citação:

#
CREATE DATABASE 'beauty' /*!40100 DEFAULT CHARACTER SET latin1 */;
#
DROP TABLE IF EXISTS 'beauty'.'abrefechaterminal';
#
CREATE TABLE 'beauty'.'abrefechaterminal' (
'idAbertura' int(11) DEFAULT NULL,
'CheckOut' varchar(20) DEFAULT NULL,
'Turno' int(10) NOT NULL,
'AbreData' datetime NOT NULL,
'AbreHora' datetime NOT NULL,
'FechaHora' datetime DEFAULT NULL,
'FechaData' datetime DEFAULT NULL,
'Troco' decimal(19,4) DEFAULT NULL,
'RestoTroco' decimal(19,4) DEFAULT NULL,
'Operador' varchar(20) DEFAULT NULL,
'vlrDinheiro' varchar(20) DEFAULT NULL,
'vlrMoeda' varchar(20) DEFAULT NULL,
'vlrConvenio' varchar(20) DEFAULT NULL,
'vlrCarteira' varchar(20) DEFAULT NULL,
'vlrCartao' varchar(20) DEFAULT NULL,
'vlrCheque' varchar(20) DEFAULT NULL,
'vlrTotGeral' decimal(11,0) DEFAULT NULL,
'Gerente' varchar(20) DEFAULT NULL,
'EntraTotal' decimal(19,4) DEFAULT NULL,
'SaidaTotal' decimal(19,4) DEFAULT NULL,
'Saldo' decimal(19,4) DEFAULT NULL,
'StatusCX' varchar(20) NOT NULL,
'Atualizacao' datetime DEFAULT NULL,
PRIMARY KEY ('Turno','AbreData','AbreHora'),
KEY 'AbreData' ('AbreData'),
KEY 'ind_cod_aberto' ('Turno','StatusCX'),
KEY 'ind_cod_dt_aberto' ('Turno','AbreData','StatusCX'),
KEY 'ind_principal' ('Turno','AbreData','AbreHora')
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
#
#

LCSD 10/10/2009 11:42:24
#324980
Caro FOXMAN,

Este SCRIPT no meu servidor MySQL (local) está funcionando perfeitamente....
Se eu pegar este SCRIPT e rodá-lo pelo FRONT, ele cria tudo perfeitamente....

O meu problema é, se ELE vai conseguir ser executado DIRETAMENTE pelo MySQL, e como é que eu faço para EXECUTÁ-LO??? Isso que não faço nem idéia de como fazer...........
Será que terei que instalar o FRONT no micro do cliente, para poder rodar este script e depois desinstalar????
FOXMAN 10/10/2009 11:59:15
#324983
Então, o arquivo bat, irá executar isso no banco.

Após o serivodor ser instalado você deverá executar o arquivo teste.bat.

Atente-se as variaveis do arquivo .bat, onde :

SET basedir=C:\BACKUP > local onde se encontra o arquivo .bat e o script
SET workdir=c:\BACKUP > local onde se encontra o arquivo .bat e o script
SET mysqldir=C:\MySQL\MySQL Server 6.0.2\bin > Local onde esta instalado o seu MYSQL

Se estes parametros estiverem corretos, e seu servidor estiver rodando normalmente basta executar o teste.bat que ele irá executar o conteudo do scritp diretamente no banco

IMPORTANTE : Sempre que é feito uma nova instalação do MySQL ele instala um banco chamado TEST, não é a toa, eu utilizo esta base para fazer as importações utilizando essa base como referencia.

NÃO HÁ NECESSIDADE DE INSTALAR O FRONT.

Faça um teste no seu servidor.





LCSD 10/10/2009 12:53:19
#324984
DESISTO.....

Obrigado pelas ajudas, mas minha INCAPACIDADE de fazer isso está sendo absurda e estou ficando já PUTO DA VIDA com isso.....
Vou APELAR e quando precisar instalar nos clientes, como terei que fazer isso REMOTAMENTE, instalo a PORRA do front, executo e depois apago aquela merda.....


Meu SACO já se encheu.......
Tópico encerrado , respostas não são mais permitidas