0

I have recently switched web hosting providers and the new provider does not allow 'load data infile' commands in MySQL. However, I have many CSV files that update tables in a database weekly using that command. What is the best way to import into MySQL without the typical load data option? I tried mysqlimport, but that seems to fail since the data isn't in SQL format, its just standard CSV data. Thanks for your help.

  • Script to read the CSV, then build the `INSERT` statements yourself? – jimbobmcgee Oct 18 '13 at 18:53
  • @user2895995 - Have you tried `load data LOCAL infile`? There's also a `mysqlimport` command in Linux that performs the same functionality, otherwise you'll have to do what jimbobmcgee recommended and create inserts. – Emo Mosley Oct 18 '13 at 18:55
  • Yes, I have tried the local option, but the 'load' command in general is blocked. How can you specify which table to import into using mysqlimport? – user2895995 Oct 18 '13 at 19:03
  • Just found out that mysqlimport is also blocked by the web host. I guess I may be making the inserts from the file. – user2895995 Oct 18 '13 at 19:19
  • MySQL CSV Storage Engine might help you out here – Tom Mac Oct 18 '13 at 21:12

1 Answers1

0

Use the following process:

  • Convert the CSV to the MySQL CSV dump format
  • Upload the file to the MySQL server or to the shared hosting file system
  • Use one of the following commands to import it:

    • mysqladmin:

      mysqladmin create db1
      mysql db1 < dump.csv
      
    • mysql:

      mysql> CREATE DATABASE IF NOT EXISTS db1;
      mysql> USE db1;
      mysql> source dump.csv
      

References

Paul Sweatte
  • 24,148
  • 7
  • 127
  • 265