mas os nomes das colunas em csv e na tabela de banco de dados são diferentes o que devo fazer?
Não é um problema. Você pode especificar qual coluna CSV é importada para qual coluna do banco de dados.
Sintaxe LOAD DATA INFILE
Por padrão, quando nenhuma lista de colunas é fornecida no final da instrução LOAD DATA INFILE, espera-se que as linhas de entrada contenham um campo para cada coluna da tabela. Se você deseja carregar apenas algumas das colunas de uma tabela, especifique uma lista de colunas:
LOAD DATA INFILE 'persondata.txt' INTO TABLE persondata (col1,col2,...);
O que eu gosto de fazer quando acho a sintaxe INFILE muito complicada é usar um cliente gráfico como HeidiSQL para clicar na ordem de coluna adequada (tem uma visualização gráfica) e copiar e colar a consulta SQL gerada.