Skip to content
Guide · MySQL Workbench

How to Import CSV in MySQL Workbench

In MySQL Workbench 8.0 you import a CSV file with the Table Data Import Wizard: right-click a table, choose the file, map the columns and run it. Workbench 26.7, the current release, does not document that wizard yet. This guide covers the 8.0 wizard as Oracle documents it, plus two documented ways that work with any client: the LOAD DATA statement and MySQL Shell's parallel table import utility.

Steps and facts checked 8 October 2026 against the vendor's official documentation. Versions covered: MySQL Workbench 8.0.47 (wizard, end of life); MySQL Workbench 26.7.0; MySQL 8.4 LTS; MySQL Shell 26.7. Next review due April 2027. Menus, shortcuts and prices change between releases; check the vendor's documentation for your version.
Short answer
  • Workbench 8.0: right-click a table in the schema browser and choose Table Data Import Wizard. It reads CSV or JSON files and maps the file to a table, its columns and types.
  • Workbench 26.7 is a rebuild, and Oracle's pages do not mention a CSV import wizard for it; Oracle says not every Workbench 8 capability is available yet.
  • For any version, LOAD DATA imports a CSV file from SQL. Without LOCAL the file must be on the server host, you need the FILE privilege and secure_file_priv applies.
  • For large files, MySQL Shell's util.importTable() splits the file into chunks and loads them in parallel; it needs local_infile set to ON on the server.
How we know: Research-based: the import wizard was checked against the MySQL Workbench Manual (8.0 through 8.0.47), the scope of Workbench 26.7 against Oracle's product page and MySQL blog, and the SQL and MySQL Shell options against the MySQL 8.4 Reference Manual and the MySQL Shell manual on 8 October 2026. We have not run these imports for this guide; the sample file and table are written for this page.

MySQL Workbench import CSV: check your version first

How you import a CSV in MySQL Workbench depends on the release. The Table Data Import Wizard is documented in the MySQL Workbench Manual, which covers versions 8.0 through 8.0.47. The current release, 26.7, is a new application built on MySQL Shell. Its product page lists the Script Editor, SQL Notebooks and result editing, but not a CSV import wizard, and Oracle's blog says some Workbench 8 features may not be available yet.

If your Workbench 26.7 build has no import option, use one of the SQL or MySQL Shell methods further down. They are part of MySQL itself and do not depend on the GUI.

Ways to load a CSV file into MySQL
MethodWhere it runsGood forLimits
Table Data Import WizardWorkbench 8.0 (end of life)Small and medium files, new or existing tablesCSV or JSON only; not documented for 26.7
Result grid ImportWorkbench 8.0 SQL editorAdding rows to a query resultResult set needs a primary key or NOT NULL unique index
LOAD DATAAny SQL client, including the Workbench 26.7 Script EditorFast loads you can scriptFile on server host needs FILE privilege; secure_file_priv applies
util.importTable()MySQL ShellLarge files, parallel loadingNeeds local_infile ON and a classic connection

Sample CSV file and target table

The examples use this small file, saved as customers.csv with a header row, and a matching table. Save the file as UTF-8; the manual notes that the wizard's encoding setting must correspond with your file.

customers.csv
customer_id,full_name,email,signup_date
1,Ana Lopez,ana@example.com,2026-01-15
2,"Smith, John",john@example.com,2026-02-03
3,Mei Chen,mei@example.com,2026-03-21
Target table (MySQL)
CREATE TABLE customers (
  customer_id INT NOT NULL,
  full_name   VARCHAR(100) NOT NULL,
  email       VARCHAR(255) NOT NULL,
  signup_date DATE NOT NULL,
  PRIMARY KEY (customer_id)
);

Table Data Import Wizard steps (Workbench 8.0)

The manual describes the wizard as supporting CSV and JSON files with options for separators, column selection and encoding, against local or remote servers, with table, column and type mapping. The steps are:

  1. In the Navigator schema browser, right-click a table and choose Table Data Import Wizard.
  2. On the source page, select customers.csv.
  3. On the destination page, choose the table that receives the data.
  4. On the CSV configuration page, check the separators, the columns to import and the Encoding, and the mapping of columns and types.
  5. Run the import and review the results page.

You can also import into an open query result: the result grid has an Import button that reads records from a CSV file. The manual notes that the result set needs a unique row identifier, such as a primary key or a NOT NULL unique index, otherwise it is read-only.

Import CSV with LOAD DATA

The MySQL 8.4 Reference Manual describes LOAD DATA as reading rows from a text file into a table at a very high speed. Without LOCAL, the server reads the file from the server host, so you need the FILE privilege and, if secure_file_priv names a directory, the file must be in that directory. The IGNORE 1 LINES clause skips the header row, and OPTIONALLY ENCLOSED BY '"' handles quoted values such as "Smith, John".

LOAD DATA LOCAL reads the file from the client machine instead, but the server's local_infile variable is disabled by default and the client must allow it too. Oracle does not document whether the Workbench 26.7 editor enables local loading, so use the server-side form or MySQL Shell if you are unsure.

Load the sample file from the server host (MySQL 8.4)
LOAD DATA INFILE '/path/allowed/by/secure_file_priv/customers.csv'
INTO TABLE customers
CHARACTER SET utf8mb4
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;

Large files: MySQL Shell parallel table import

MySQL Shell, the foundation Workbench 26 is built on, includes util.importTable(). The MySQL Shell manual says it analyses the input file, splits it into chunks and uploads them over parallel connections. It uses LOAD DATA LOCAL INFILE internally, so local_infile must be ON on the target server, and it needs a classic MySQL protocol connection. The csv-unix dialect is defined for comma-separated files with LF line endings, and skipRows: 1 skips the header.

Enable local loading on the server (SQL mode, needs the right privileges)
SET GLOBAL local_infile = 1;
Import customers.csv in MySQL Shell (JavaScript mode)
util.importTable("/home/user/customers.csv", {schema: "mydb", table: "customers", dialect: "csv-unix", skipRows: 1, showProgress: true})

Frequently asked questions

Where is the Table Data Import Wizard in MySQL Workbench?

In Workbench 8.0, right-click a table in the schema browser and choose Table Data Import Wizard. Oracle does not document the wizard for Workbench 26.7.

Why is the MySQL Workbench CSV import so slow?

Oracle does not publish speed figures for the wizard; the manual describes it as a method for simple table operations. For big files, the reference manual describes LOAD DATA as very fast, and the MySQL Shell manual says util.importTable() can be many times faster than a single-threaded LOAD DATA.

How do I skip the header row when importing a CSV?

With LOAD DATA, add IGNORE 1 LINES. With MySQL Shell, pass skipRows: 1.

Can MySQL Workbench import Excel files?

The documented import formats are CSV and JSON. Save the sheet as CSV (UTF-8) from your spreadsheet program first.

Why does LOAD DATA fail because of secure_file_priv?

When secure_file_priv names a directory, the server reads files for LOAD DATA (without LOCAL) only from that directory. Move the CSV there, or load it from the client with MySQL Shell.

Sources

Checked 8 October 2026.

How we research tool guides: our editorial method. CodeWithSQL earns nothing from the vendors mentioned.

Still choosing a SQL client?

Read the full reviews, or compare tools side by side.