Mysql (client)
mysql
is naast de naam van het RDBMS, tevens de naam van een command-line client. Deze wordt altijd meegeleverd met servers. Vaak is-ie onmisbaar.
Inloggen op locale server
Syntaxis voor inloggen op een locale server:
mysql -u <gebruikersnaam> -p<wachtwoord>
- Merk op, dat er geen spatie is tussen
-p
en het wachtwoord - Doorgaans sla ik m'n credentials op in een
.my.cnf
-bestand, zodat ik met alleenmysql
kan inloggen.
Inloggen op remote server
Remote inloggen via TCP/IP:
mysql -u <gebruikersnaam> -p<wachtwoord> -h <ip-adres> -p <poortnummer>
Inloggen via SSH Tunnel
Opzetten SSH tunnel
alias tunnel_srv7="ssh -N -L 3336:127.0.0.1:3306 jeroen@129.210.167.215 -f"
Wat dit doet:
-N
: Don't execute a command right now-L 3336:127.0.0.1:3306
: Create a local port forwarding, with local port number, destination IP-adres en remote port number gescheiden door ":"jeroen@129.210.167.215
: Remote server-f
: Run command in background- SSH gebruikt hier het standaard IP-adres 22. Dit kun je desgewenst aanpassen met optie
-p [port number]
.
Deze commando's heb ik opgeslagen in .bashrc
als aliassen, bv. tunnel_srv1
en tunnel_srv23
.
Inloggen mysql-client
Dit werkt:
mysql --user dbusername --port 3337 --password -h 127.0.0.1
--port
verwijst naar de getunnelde MySQL-poort. Zonder deze optie probeert mysql te verbinden met een locale MySQL-database met naamdbusername
-h 127.0.0.1
(host) is noodzakelijk, ook al lijkt me dat dit 127.0.0.1 de standaardhost is.
Dit werkt ook:
mysql --user dbusername --port 3337 -pFDLsdDSLfds -h 127.0.0.1
Hierbij is het wachtwoord geïncorporeerd in het commando. Dat werkt trouwens alleen met optie -p
en niet met --password
.
Alias
Deze mysql-commando's kun je onderbrengen als alias in .bashrc
. Bv.: