Support
Write to us when something does not work or is not clear. Below are the answers to what is asked first.
In English or Dutch. It helps to know the device, the version of the app (Settings › About) and the version of your server.
Which servers work
QueryDog works with MySQL and MariaDB. It signs in with mysql_native_password and with caching_sha2_password, the default of MySQL 8 and later. A server that asks for another way of signing in is refused with a message that says so.
Is the connection encrypted?
Through an SSH tunnel it is: everything between the app and the server goes through the tunnel. A direct connection is not encrypted, because QueryDog does not use TLS to the database server. Use a direct connection on your own network or machine, and a tunnel for everything else.
A server that accepts only TLS connections cannot be reached directly. If you can reach it over SSH, a tunnel works.
The app cannot connect
- Through a tunnel, the host of the database is the name the SSH server knows it by. For a database on the same machine that is
127.0.0.1. - For a direct connection the server has to listen on the network, and the user has to be allowed in from your address. A user made as
'name'@'localhost'is not.
SSH keys
Keys are under Connections › SSH keys. One key is the default, which every connection uses unless you choose another for it.
Making a key
- Open Connections › SSH keys and choose Generate new key…. The app makes an ed25519 key on the device.
- Choose Copy public key.
- Add that line to
~/.ssh/authorized_keysof the user on each server the device should reach.
With a Ploi account linked, the app can put the public key on your servers for you.
Using a key you have
Add key file… takes a private key in OpenSSH format, ed25519 or RSA, with or without a passphrase. The passphrase is kept in the Keychain with the key.
An older RSA key, a file that begins with BEGIN RSA PRIVATE KEY, works when it has no passphrase. One with a passphrase has to be written in the newer format first. This changes the file where it is, so make a copy before you do:
ssh-keygen -p -f ~/.ssh/id_rsa
Where keys are kept
A private key is in the Keychain of the device, not in a file of the app. It is not part of iCloud sync: see below.
iCloud sync
Sync is on by default and is switched under Settings › iCloud › Sync with iCloud. Sync now on the same pane asks for the changes of your other devices at once. The devices have to use the same Apple Account.
- Synced
- Connections, the names and fingerprints of your SSH keys, which key is the default, linked Ploi accounts, the query log, and the preferences for dates, sorting, editing, safety, and import and export.
- Through iCloud Keychain
- Passwords, passphrases and the API key of Ploi. iCloud Keychain has to be on, on each device, in the iCloud settings of the device.
- Never synced
- Private SSH keys. Also staying on the device: the key you chose for that device only, the place and width of the sidebar, rows per page and column widths.
A new device asks for an SSH key
Because private keys stay where they are, a second device has the connections and not the key. It asks at launch to choose one: generate a new key on that device and add its public key to your servers, or add the key file you use elsewhere.
Passwords are missing on another device
Then iCloud Keychain is off on one of the two. Switch it on on both, and give it a few minutes.
The purchase
QueryDog is free with two connections. One purchase, once, makes that unlimited on every Mac, iPhone and iPad that uses your Apple Account. It is not a subscription.
Restoring your purchase
The app asks the App Store at every launch, so on a new device the purchase is usually there by itself. When it is not:
- See that the device is signed in to the App Store with the Apple Account you bought with.
- Open Settings in QueryDog, then Unlimited.
- Choose Restore Purchase.
What happens to my connections without the purchase?
Nothing. The limit is on adding: connections you have keep working, also when there are more than two, for instance after a sync from another device.
Refunds
The App Store handles payment and refunds. Ask for one at reportaproblem.apple.com.
Tables and queries
A table cannot be edited
Editing needs a primary key: it is how the app tells the server which row you mean. A table without one opens to read, and says “No primary key”.
“… is read-only”
The connection is marked read-only, so the app refuses every statement that changes data or structure, and every import and script. The switch is in the settings of the connection, under Safety & appearance.
The app asks before it runs my query
It does for an UPDATE or DELETE without WHERE, a DROP and a TRUNCATE. Settings › Safety has it for all connections, for the ones you marked as production only, or not at all.
Cancel does not stop the query
Cancel sends KILL QUERY over a second connection. The server decides whether your user may do that.
Running several statements
The query tab runs one statement at a time. For a script or a dump, use Run SQL file… on a connection or a database in the sidebar.
Moving and backing up connections
Settings › Connections has Export… and Import…. An import adds connections and replaces none.
An export is a file for you to guard: it holds the passwords and the private SSH keys of the connections in it, in plain text. Keep it somewhere safe and delete it when the import is done.