Get data from MySQL into Google Sheets
Pull live rows from your MySQL database into Google Sheets and refresh them whenever you like. No CSV uploads, no Apps Script, no copy-paste. About ten minutes the first time, and the Free plan covers it.
What you’ll end up with
A Google Sheet showing the live results of a SQL query against your MySQL database, with a button that pulls the latest rows whenever the data changes. Like this:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | customer_id | first_name | last_name | country | total |
| 2 | 1042 | Maria | Alvarez | USA | 1,284.50 |
| 3 | 1043 | Daniel | Okafor | USA | 612.00 |
| 4 | 1047 | Priya | Nair | USA | 2,090.75 |
| 5 | 1051 | Thomas | Berg | USA | 338.20 |
| 6 | 1056 | Lucía | Ferreira | USA | 1,455.00 |
| 7 | 1060 | Kenji | Sato | USA | 874.10 |
| 8 |
Live from MySQLMySQL holds your data on a server you or your team run. Getting it into Google Sheets usually means CSV exports that are stale the moment they land, or scripts nobody wants to maintain. Query Streams skips that: a small helper program called the Agent runs the query where your data is, and a Google Sheets add-on asks it for the rows you want. Only the results travel, over an encrypted link, and Google Sheets can be anywhere: any browser on any device.
What you’ll need
The Agent on a computer that can reach the server
A small program that runs in the background and queries the database when Google Sheets asks. Often the database server itself, or any always-on computer on the same network.
Your MySQL connection details
The server name, the database name, and a username and password that can read it. If someone else manages the database, this is the bit to ask them for.
Which computer gets the Agent? Any always-on machine that can already reach your MySQL database, often the database server itself or a computer on the same network. Google Sheets can be anywhere; it runs in your browser.
Connect it in five steps
-
Create your account
Go to my.querystreams.com and sign up. Pick the Free plan. It is a real plan, not a trial, and it covers connecting your MySQL database and running queries from Google Sheets.
Install the Agent on a computer that can reach the server



Sign in, open Download, and install the Agent on a machine that can already reach your MySQL database: often the database server itself, or any always-on computer on the same network. It takes a minute and starts on its own from then on.
Why a small program instead of a driver? The Agent is one install for Windows, Mac or Linux (about 85 MB on Windows, a little over 100 MB on Mac and Linux) that runs quietly in the background. It makes one outbound, encrypted connection to Query Streams, the same way a browser does, so you open no firewall port and set up no VPN. Your database stays on your network, and the rows travel to wherever you are, across the internet if need be. The only thing on your side is the add-on.
The Download page shows Your Access Key. Paste it into the Agent when it asks, and wait for the badge to read Connected to Query Streams. That is the only thing you do on the Agent itself.
-
Point it at your MySQL database
Back in your browser, open Data Agents (under Data in the top menu). Your Agent is listed there. Click Add connector, choose MySQL, and fill in the details you gathered earlier:
- Connection name
- Any name you will recognise later, like Sales database.
- Host
- The server’s name or IP address, like 192.168.1.1, or localhost when the Agent runs on the database’s own computer.
- Port
- Starts at 3306; leave it unless your admin changed the port MySQL listens on.
- Username
- A database login that can read your data. The box starts empty; a read-only login is safest.
- Password
- The password for that login.
Click Test connection. When it reads Connected (or Signed in), click Next. The next screen, Which databases do you want to work with?, lists the databases this login can see: tick yours. No list? Type the name under Type a database name and click Verify. Then click Next through Data realm and finish with Create connector. The connection reaches your Agent within a few seconds.
Test failed? Usually the server name or a firewall between the Agent’s computer and the database. Try the same details from that computer with your usual database tool; if that fails, the Agent will too.
-
See your data in Query Builder Optional
You can look at your MySQL database before Google Sheets is involved at all. Open Query Builder in the portal and pick the connection you just made. The Schema tab lists your tables and columns, and clicking one puts its name in the editor, so you can write a query without remembering exact names. Click Run and the rows appear under Results. Query Builder is on every plan, Free included.
On Business plans you can also ask Nova in plain English (“show me customers in the USA”) and it writes the SQL for you. When the query looks right, save it: from Personal Core up it shows in the add-on’s Saved Queries list, and on any plan you can copy the SQL into the next step.
-
Add Query Streams to Google Sheets
Open any Google Sheet, go to Extensions → Add-ons → Get add-ons, search for Query Streams, and click Install. Or install it straight from Query Streams on the Google Workspace Marketplace. Google will ask you to allow the add-on; that is normal.
Afterwards it is in every Google Sheet you open: a Query Streams icon in the side panel on the right, also listed under Extensions. There is no separate sign-in. It recognises the Google account you are already using, so that email needs to be the one on your Query Streams account.
-
Pull in your first table
Click the Query Streams icon in the side panel on the right of the sheet (or find it under Extensions). Choose Query Streamer and pick the connection you just made.
Type the query you want to run. This one pulls a few columns from a customers table:
Example · SQLSELECT customer_id, name, city FROM customers ORDER BY name LIMIT 100;
Under Destination Sheet pick the tab the rows should land in, then click Run Query. The rows land in that tab in a second or two. Click Run Query again any time the data has changed and the tab updates in place.
Don’t know SQL? Build it in Query Builder first and paste it here, or pick it from Saved Queries if you saved it.
That’s it. Your data is in the sheet and stays current with one click. Nothing left your network except the rows you asked for.
Good next moves
- Save the query in the portal so you can run it again with one click, from Google Sheets or Excel.
- Add a filter such as a date range, so the same query can answer “this month” without editing.
- Share the results with a colleague. They see the rows, not your credentials.
Questions people ask
Does your MySQL database have to be on the computer I use Sheets on?
No. Only the Agent has to be where your MySQL database is. Google Sheets runs in your browser on any device. Open the add-on with the same Google account and your connections are there.
Does my data get copied to Query Streams?
No. The Agent runs the query where your data is and sends only the rows it returns. Nothing is synced or stored in between.
Does the Free plan really cover this?
Yes. Free is a plan you keep, not a trial that expires. See exactly what it includes on the pricing page.
Does the sheet refresh by itself?
Click Run Query again whenever you want the latest rows. For a sheet that refreshes on a schedule without anyone pressing anything, set up an Automation in the Query Streams portal (Streams → Automation). It is on every plan.
Related guides
Every guide for MySQL
Not quite your setup?
- Running MariaDB? Pick the MariaDB card instead; the steps are the same → MariaDB
Setup trouble?
- Want the Agent to sign in with a login that can only read? Create a read-only database user, with copy-paste SQL for each database → Create a read-only database user
- Test connection cannot reach the database server? Open the database's port in Windows Defender Firewall on the computer it runs on → Open a firewall port on Windows
- Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?

