복붙노트

[SQL] 배쉬 스크립트는 MySQL의 값을 삽입

SQL

배쉬 스크립트는 MySQL의 값을 삽입

내 MySQL 서버 및 삽입에 연결하는 txt 파일에서 일부 valuse 그 떠들썩한 파티 스크립트를 만들고 싶어. 나는이 아래를 작성했습니다 :

#!/bin/bash
echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('cat test.txt');" | mysql -uroot -ptest test;

그러나 나는 다음과 같은 오류를 수신하고 있습니다 :

나는 오류 내 txt 파일에있는 가정,하지만, 난 여전히 성공의 희망을 많은 변화를 시도하지하고했습니다.

이 같은 내 txt 파일의 외모 :

해결법

  1. ==============================

    1.이거 한번 해봐:

    이거 한번 해봐:

    #!/bin/bash
    inputfile="test.txt"
    cat $inputfile | while read ip mac server; do
        echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('$ip', '$mac', '$server');"
    done | mysql -uroot -ptest test;
    

    파일을 스트리밍이 방법 당신은뿐만 아니라 MySQL의 명령 실행을 참조하십시오.

  2. ==============================

    2.추가하는 많은 행이 가정, 당신은 아마 DATA INFILE 문이 아니라 INSERT를 LOAD 필요가있다. 소스 파일은 서버에 있어야한다,하지만 여기 경우 것 같다.

    추가하는 많은 행이 가정, 당신은 아마 DATA INFILE 문이 아니라 INSERT를 LOAD 필요가있다. 소스 파일은 서버에 있어야한다,하지만 여기 경우 것 같다.

    뭐 그런 :

    #!/bin/bash
    
    mysql -uroot -ptest test << EOF
    
    LOAD DATA INFILE 'test.txt'
        INTO TABLE tbl_name
        FIELDS TERMINATED BY ' ';
    
    EOF
    

    LOAD DATA INFILE을 사용하면 문서를 읽고 발견 할 수 많은 옵션이 있습니다.

  3. ==============================

    3.당신은 당신이 오류 메시지가 이유가 그래서 3 개 개의 매개 변수 (IP, MAC 및 서버)를 필요로하는 INSERT 문에서 데이터베이스의 String로서 값 "고양이있는 test.txt"를 삽입하려고합니다.

    당신은 당신이 오류 메시지가 이유가 그래서 3 개 개의 매개 변수 (IP, MAC 및 서버)를 필요로하는 INSERT 문에서 데이터베이스의 String로서 값 "고양이있는 test.txt"를 삽입하려고합니다.

    당신은 작성하면 다음과 같을 것이다 쿼리에이를 사용하여 먼저 텍스트 파일을 읽고 IP, MAC 및 서버 값을 추출해야합니다

    #!/bin/bash
    echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('10.16.54.29', '00:f8:e5:33:22:3f', 'marsara');" | mysql -uroot -ptest test;
    
  4. ==============================

    4.나는 이것을 사용하고 작동 :

    나는 이것을 사용하고 작동 :

    mysql -uroot -proot < infile
    

    또는 먼저 데이터베이스를 선택

    ./mysql -uroot -proot db_name < infile
    

    또는 클립 보드에 전체 SQL을 복사하여 붙여 넣기

    pbpaste > temp_infile && mysql -uroot -proot < temp_infile && rm temp_infile
    
  5. from https://stackoverflow.com/questions/17997558/bash-script-to-insert-values-in-mysql by cc-by-sa and MIT license