Inserindo dados na tabela mysql usando um script

0

Eu estou tentando carregar dados no banco de dados mysql usando o seguinte script

    #!/bin/bash

    DB_USER='my_user';
    DB_PASSWD='passwd';

    DB_NAME='db_name';
    TABLE='rass';

    INPUT_FILE='/full/path/to/re.txt';

    SQL="USE $DB_NAME; LOAD LOCAL DATA INFILE '$INPUT_FILE' REPLACE INTO TABLE '$TABLE' LINES TERMINATED BY '|' CHARACTER SET utf8;"
    mysql --user=$DB_USER --password=$DB_PASSWD --default_character_set utf8 $DB_NAME

Quando eu executo o comando, ele exibe o manual do mysql e nenhum dos dados no arquivo é inserido. Alguma idéia de como eu posso modificar meu código para inserir os dados

    
por sosytee 02.09.2013 / 11:31

1 resposta

2

Use um documento aqui .

mysql [args] << EOF
USE $DB_NAME; 
LOAD LOCAL DATA INFILE "$INPUT_FILE" REPLACE INTO TABLE "$TABLE" LINES TERMINATED BY '|' CHARACTER SET utf8;
QUIT;
EOF

(suponho que você não queira, na verdade, aspas simples ao redor das referências de variáveis).

Além disso, você pode configurar um arquivo ~/.my.cnf para que não -interactive management é um pouco mais simples, por exemplo:

[client]
user=root
password="some pass"
    
por moon.musick 02.09.2013 / 11:52