To add more context to the accepted answer, I would like to give an example.
Here’s a sample CSV:

Your MySQL configuration may dictate the success (or failure) of the LOAD INFILE. With mine, loading is disabled for both the client and server. So, initially, I get this error:
Loading local data is disabled; this must be enabled on both the client and server sides.
So, you might need to check the secure_file_priv server variable and set this in the client:
SET GLOBAL local_infile = 1;
The location of the CSV file also matters depending on your client. Since I use dbForge Studio for MySQL, it looks for the path on where dbForge is installed (C:\Program Files\Devart\dbForge Edge\dbForge Studio for MySQL). Or, if there’s a path in secure_file_priv, put it there.
Once the requirements are in place, the LOAD INFILE should work. However, you may need to adjust based on runtime errors thrown to you.
Below shows the target table and the exact LOAD INFILE syntax I used:

Note that the customer table has more columns than the CSV file. That’s why at the end of the LOAD INFILE, the customer_name, email, and address columns are explicitly specified. The column names are based on the target table but the arrangement is based on the columns from the CSV file (See above images).
In the end, I got this:

After using LOAD INFILE, I used a simple SELECT to the customer table to see if the 10 rows are there.
Using LOAD INFILE is fine to import a CSV to MySQL. But dealing with syntax errors may be annoying. So, using a GUI is my preferred method. Of course, it’s not without problems too but connecting, loading, and column mappings, are easier understood. I used SSIS and Skyvia for some time. Others may have different preferences but I have experience on these so I mentioned them here.
I hope it helps.