MySQL :: MySQL 8.0 Reference Manual:: 4.2.4 verbinden met de MySQL Server met behulp van Command Options
4.2.4 verbinden met de MySQL Server met behulp van Command Options
Deze sectie beschrijft het gebruik van command-line opties om te specificeren hoe verbindingen tot stand te brengen met de MySQL server, voor clients zoals MySQL of mysqldump. Voor informatie over het tot stand brengen van verbindingen met behulp van URI-achtige verbindingsreeksen of sleutelwaardeparen, voor clients zoals MySQL Shell, zie paragraaf 4.2.5, “verbinding maken met de Server met behulp van URI-achtige Strings of Sleutelwaardeparen”. Voor aanvullende informatie als je niet in staat bent om verbinding te maken, zie paragraaf 6.2.21, “problemen oplossen met verbinden met MySQL”.
voor een client programma om verbinding te maken met de MySQL server, moet het de juiste verbindingsparameters gebruiken, zoals de naam van de host waarop de server draait en de gebruikersnaam en het wachtwoord van uw MySQL account. Elke verbindingsparameter heeft een standaardwaarde, maar u kunt zo nodig standaardwaarden overschrijven met behulp van programmaopties die zijn opgegeven op de opdrachtregel of in een optiebestand.
De voorbeelden hier gebruiken het MySQL client programma, maar de principes zijn van toepassing op andere clients zoals mysqldump, mysqladmin, of mysqlshow.
Dit commando roept mysql aan zonder expliciete verbindingsparameters op te geven:
mysql
omdat er geen parameteropties zijn, zijn de standaardwaarden van toepassing:
-
De standaard hostnaam is
localhost
. Op Unix heeft dit een speciale betekenis, zoals later beschreven. -
De standaard gebruikersnaam is
ODBC
op Windows of uw Unix-aanmeldnaam op Unix. -
Er wordt geen wachtwoord verzonden omdat
--password
noch-p
wordt gegeven. -
voor mysql wordt het eerste nonoption argument gebruikt als de naam van de standaarddatabase. Omdat er geen dergelijk argument is, selecteert mysql geen standaard database.
om de hostnaam en gebruikersnaam expliciet op te geven, evenals een wachtwoord, geeft u de juiste opties op de opdrachtregel. Om een standaarddatabase te selecteren, voegt u een argument database-naam toe. Voorbeelden:
mysql --host=localhost --user=myname --password=password mydbmysql -h localhost -u myname -ppassword mydb
voor wachtwoordopties is de wachtwoordwaarde optioneel:
-
Als u een
--password
of-p
gebruikt en een wachtwoordwaarde opgeeft, moet er geen spatie tussen--password=
of-p
en het wachtwoord dat erop volgt. -
Als u
--password
of-p
gebruikt, maar geen wachtwoordwaarde opgeeft, vraagt het client-programma u het wachtwoord in te voeren. Het wachtwoord wordt niet weergegeven als u het invoert. Dit is veiliger dan het geven van het wachtwoord op de opdrachtregel, waardoor andere gebruikers op uw systeem de wachtwoordregel kunnen zien door een commando zoals ps uit te voeren. Zie paragraaf 6.1.2.1, “richtlijnen voor eindgebruikers voor wachtwoordbeveiliging”. -
om expliciet aan te geven dat er geen wachtwoord is en dat het clientprogramma er niet om moet vragen, gebruikt u de optie
--skip-password
.
zoals eerder vermeld, is inclusief de wachtwoordwaarde op de opdrachtregel een beveiligingsrisico. Om dit risico te vermijden, specificeer de optie --password
of -p
zonder een volgende wachtwoordwaarde:
mysql --host=localhost --user=myname --password mydbmysql -h localhost -u myname -p mydb
wanneer de optie --password
of -p
zonder wachtwoordwaarde wordt gegeven, drukt het client-programma een prompt af en wacht tot u het wachtwoord invoert. (In deze voorbeelden wordt mydb
niet geïnterpreteerd als een wachtwoord omdat het gescheiden is van de vorige wachtwoordoptie door een spatie.)
Op sommige systemen beperkt de bibliotheekroutine die MySQL gebruikt om om een wachtwoord te vragen het wachtwoord automatisch tot acht tekens. Die beperking is een eigenschap van de systeembibliotheek, niet MySQL. Intern heeft MySQL geen limiet voor de lengte van het wachtwoord. Om de beperking op systemen die erdoor worden beïnvloed te omzeilen, specificeer je je wachtwoord in een optiebestand (zie paragraaf 4.2.2.2, “Optiebestanden gebruiken”). Een andere oplossing is om uw MySQL wachtwoord te veranderen naar een waarde die acht of minder tekens heeft, maar die het nadeel heeft dat kortere wachtwoorden minder veilig zijn.
clientprogramma ‘ s bepalen als volgt welk type verbinding gemaakt moet worden:
-
als de host niet is opgegeven of
localhost
, ontstaat er een verbinding met de lokale host:-
Op Windows maakt de client verbinding met gedeeld geheugen, als de server is gestart met de
shared_memory
systeemvariabele ingeschakeld om gedeelde geheugenverbindingen te ondersteunen. -
op Unix behandelen MySQL-programma ‘ s de hostnaam
localhost
speciaal, op een manier die waarschijnlijk anders is dan wat u verwacht in vergelijking met andere netwerkgebaseerde programma ‘ s: de client maakt verbinding met een Unix-socket-bestand. De optie--socket
of de omgevingsvariabeleMYSQL_UNIX_PORT
kan worden gebruikt om de socket naam op te geven.
-
-
On Windows, if
host
is.
(period), or TCP/IP is not en--socket
is not specified or the host is empty, the client connects using a named pipe, if de server werd gestart met denamed_pipe
systeemvariabele ingeschakeld om named-pipe verbindingen te ondersteunen. Als named-pipe-verbindingen niet worden ondersteund of als de gebruiker die de verbinding maakt geen lid is van de Windows-groep die is opgegeven door denamed_pipe_full_access_group
systeemvariabele, treedt er een fout op. -
anders gebruikt de verbinding TCP / IP.
de --protocol
optie stelt u in staat om een bepaald transportprotocol te gebruiken, zelfs als andere opties normaal resulteren in het gebruik van een ander protocol. Dat wil zeggen, --protocol
specificeert het transportprotocol expliciet en overschrijft de voorgaande regels, zelfs voor localhost
.
alleen verbindingsopties die relevant zijn voor het geselecteerde transportprotocol worden gebruikt of gecontroleerd. Andere verbindingsopties worden genegeerd. Bijvoorbeeld, met --host=localhost
op Unix, probeert de client verbinding te maken met de lokale server met behulp van een Unix socket bestand, zelfs als een --port
of -P
optie is gegeven om een TCP/IP poortnummer op te geven.
om er zeker van te zijn dat de client een TCP/IP-verbinding maakt met de lokale server, gebruikt u --host
of -h
om een hostnaam te specificeren van 127.0.0.1
(in plaats van localhost
), of het IP-adres of de naam van de lokale server. U kunt het transportprotocol ook expliciet opgeven, zelfs voor localhost
, door de optie --protocol=TCP
te gebruiken. Bijvoorbeeld:
mysql --host=127.0.0.1mysql --protocol=TCP
als de server is geconfigureerd om IPv6-verbindingen te accepteren, kunnen clients verbinding maken met de lokale server via IPv6 met --host=::1
. Zie Paragraaf 5.1.13, “IPv6-Ondersteuning”.
in Windows, om een MySQL-client te dwingen een named-pipe-verbinding te gebruiken, geeft u de optie --pipe
of --protocol=PIPE
op, of specificeert u .
(punt) als hostnaam. Als de server niet is gestart met denamed_pipe
systeemvariabele ingeschakeld om named-pipe verbindingen te ondersteunen of als de gebruiker die de verbinding maakt geen lid is van de Windows-groep die is opgegeven door de named_pipe_full_access_group
systeemvariabele, treedt er een fout op. Gebruik de optie --socket
om de naam van de pijp op te geven als u de standaard pipe naam niet wilt gebruiken.
verbindingen met externe servers gebruiken TCP/IP. Dit commando maakt verbinding met de server die draait op remote.example.com
met behulp van het standaard poortnummer (3306):
mysql --host=remote.example.com
om een poortnummer expliciet op te geven, gebruik de --port
of -P
optie:
mysql --host=remote.example.com --port=13306
u kunt ook een poortnummer opgeven voor verbindingen met een lokale server. Echter, zoals eerder aangegeven, gebruiken verbindingen met localhost
op Unix standaard een socket-bestand, dus tenzij u een TCP/IP-verbinding forceert zoals eerder beschreven, wordt elke optie die een poortnummer specificeert genegeerd.
voor dit commando gebruikt het programma een socket-bestand op Unix en de optie --port
wordt genegeerd:
mysql --port=13306 --host=localhost
om het poortnummer te gebruiken, forceer je een TCP/IP-verbinding. Roep het programma bijvoorbeeld op een van de volgende manieren aan:
mysql --port=13306 --host=127.0.0.1mysql --port=13306 --protocol=TCP
voor aanvullende informatie over opties die bepalen hoe clientprogramma ‘ s verbindingen tot stand brengen met de server, zie paragraaf 4.2.3, “Command Options for Connecting to the Server”.
Het is mogelijk om verbindingsparameters op te geven zonder ze op de commandoregel in te voeren telkens wanneer u een clientprogramma aanroept:
-
specificeer de verbindingsparameters in de
sectie van een optiebestand. De relevante sectie van het bestand zou er zo uit kunnen zien:
host=host_nameuser=user_namepassword=password
voor meer informatie, zie paragraaf 4.2.2.2,”Optiebestanden gebruiken”.
-
sommige verbindingsparameters kunnen worden opgegeven met omgevingsvariabelen. Bijvoorbeeld:
-
om de host voor mysql te specificeren, gebruik
MYSQL_HOST
. -
in Windows gebruikt u
USER
om de MySQL-gebruikersnaam op te geven.
voor een lijst van ondersteunde omgevingsvariabelen, zie paragraaf 4.9, “omgevingsvariabelen”.
-