sql >> Databáze >  >> RDS >> Mysql

Mysql 5.5 Oprávnění LOAD DATA INFILE

Odpověď je, že potřebujeme následující řádek kódu:

mysql_options( &mysql, MYSQL_OPT_LOCAL_INFILE, 0 );

vložen mezi mysql_init() a mysql_real_connect() .

Níže je uveden úryvek kódu C pro referenci. Všimněte si, že mysql backend SOCI lze opravit pomocí tohoto řádku kódu, aby fungoval.

Testováno a funguje na Mysql 5.5, gcc 4.7.2, Quantal.

#include <mysql.h>
#include <stdio.h>

main()
{
  MYSQL mysql;

  mysql_init( &mysql );
  mysql_options( &mysql, MYSQL_OPT_LOCAL_INFILE, 0 );
  if ( !mysql_real_connect( &mysql,"127.0.0.1","root","open_sasame","tmp_db",0,NULL,0 ))
  {
    fprintf(stderr, "Failed to connect to database: Error: %s\n",
      mysql_error( &mysql ));
  }

  if ( mysql_query( &mysql, "LOAD DATA LOCAL INFILE '/tmp/junk4.txt' "
    "INTO TABLE tmp_db.example_tbl FIELDS TERMINATED BY '|' "
    "LINES TERMINATED BY '\\n'" ))
  {
    fprintf( stderr, "ERROR DURING LOAD DATA LOCAL INFILE\n" );
  }

  mysql_close( &mysql );
}



  1. Jak zajistit, aby mysql akceptoval externí připojení

  2. Změna další rozevírací hodnoty s předchozí rozbalovací událostí onchange

  3. Ekvivalent Java pro mysql_real_escape_string() PHP

  4. Kde najdu protokol transakcí MySQL?