Site Overlay

MySQL Command-line Client

over de MySQL Command-Line Client

mysql (van MariaDB 10.4.6, ook wel mariadb genoemd) is een eenvoudige SQL shell (met GNU readlinecapabilities). Het ondersteunt interactief en niet-interactief gebruik. Bij interactief gebruik worden queryresultaten gepresenteerd in een ASCII-tabelformaat. Wanneer het niet-interactief wordt gebruikt (bijvoorbeeld als filter), wordt het resultaat gepresenteerd in intab-gescheiden formaat. Het uitvoerformaat kan worden gewijzigd met behulp van commando-opties.

Als u problemen heeft door onvoldoende geheugen voor grote resultaatsets, gebruik dan de optie--quick., Dit dwingt mysql om de resultaten van de server een rij tegelijk op te halen in plaats van de volledige result set op te halen en het in het geheugen te bufferen voordat het wordt weergegeven. Dit wordt gedaan door de result set terug te geven met behulp van de mysql_use_result() C API functie in de library/server in plaats van mysql_store_result().

het gebruik van mysql is heel eenvoudig. Aanroepen vanaf de prompt van uw commando interpreteert als volgt:

mysql db_name

of:

mysql --user=user_name --password=your_password db_name

Typ een SQL statement, eindig met”;”, \g, of \G en druk op Enter.,

Typing Control-C zorgt ervoor dat mysql probeert het huidige statement te stoppen. Als dit niet kan worden gedaan, of Control-C opnieuw wordt getypt voordat het statement wordt uitgeschakeld, stopt mysql.

U kunt SQL-statements als volgt uitvoeren in een scriptbestand (batchbestand):

mysql db_name < script.sql > output.tab

vanaf MariaDB 10.4.6, mariadb is beschikbaar als symlink naar mysql.

van MariaDB 10.5.2 is mysql de symbolische koppeling, en mariadb de binaire naam.,

het Gebruik van mysql

dit commando gebruiken mysql en de algemene syntax is:

mysql <options>

Opties

mysql ondersteunt de volgende opties:

Optie Beschrijving
-?, --help Display this help and exit.,
-I, --help Synonym for -?
--abort-source-on-error Abort ‘source filename’ operations in case of errors.
--auto-rehash Enable automatic rehashing. This option is on by default, which enables database, table, and column name completion. Use --disable-auto-rehash, --no-auto-rehash or skip-auto-rehash to disable rehashing., Dat zorgt ervoor dat mysql sneller start, maar je moet het rehash commando geven als je naamvoltooiing wilt gebruiken. Om een naam in te vullen, voert u het eerste deel in en drukt u op Tab. Als de naam ondubbelzinnig is, maakt mysql het af. Anders kunt u opnieuw op Tab drukken om de mogelijke namen te zien die beginnen met wat u tot nu toe hebt getypt. Voltooiing vindt niet plaats als er geen standaarddatabase is.
-A, --no-auto-rehash geen automatische herhashing. Men moet ‘rehash’ gebruiken om tabel en veld voltooiing te krijgen., Dit geeft een snellere start van mysql en schakelt rehashing op reconnect.
--auto-vertical-output automatisch overschakelen naar verticale uitvoermodus als het resultaat groter is dan de terminalbreedte.
-B, --batch resultaten Afdrukken Met tab als kolomscheidingsteken, met elke rij op een nieuwe regel. Met deze optie gebruikt mysql het geschiedenisbestand niet. Batch-modus resulteert in niet-tabulaire uitvoerformaat en ontsnappen van speciale tekens., Escaping kan uitgeschakeld worden door de raw-modus te gebruiken; zie de beschrijving voor de --raw optie. (Activeert --silent.)
--binary-mode standaard is ASCII ‘\0’ niet toegestaan en ‘\r\n’ wordt vertaald naar ‘\n’. Deze schakelaar schakelt beide functies uit, en schakelt ook het ontleden van alle clientcommando ’s uit, behalve \C en DELIMITER, in niet-interactieve modus (voor input doorgeleid naar mysql of geladen met behulp van de’ source ‘ opdracht). Dit is nodig bij het verwerken van uitvoer van mysqlbinlog die blobs kunnen bevatten.,
--character-sets-dir=name Directory for character set files.
--column-names Write column names in results. (Defaults to on; use --skip-column-names to disable.)
--column-type-info Display column type information.
-c, --comments Preserve comments. Send comments to the server. The default is --skip-comments (discard comments), enable with --comments.,
-C, --compress comprimeer alle informatie die tussen de client en de server wordt verzonden als beide compressie ondersteunen.
--connect-expired-password laat de server weten dat deze client bereid is om verlopen wachtwoordsandbox-modus af te handelen, zelfs als --batch was opgegeven. Van MariaDB 10.4.3.
--connect-timeout=num aantal seconden voor verbindingstijd. Standaard op nul.,
-D, --database=name Database to use.
-# , --debug On debugging builds, write a debugging log. A typical debug_options string is d:t:o,file_name. The default is d:t:o,/tmp/mysql.trace.
--debug-check Check memory and open file usage at exit.
-T, --debug-info Print some debug info at exit.,
--default-auth=plugin te gebruiken standaard plugin voor authenticatie aan de clientzijde.
--default-character-set=name Stel de standaard tekenset in. Een veelvoorkomend probleem dat kan optreden wanneer het besturingssysteem utf8 of een andere multibyte-tekenset gebruikt, is dat de uitvoer van de MySQL-client onjuist is geformatteerd, vanwege het feit dat de MariaDB-client standaard de latin1-tekenset gebruikt. U kunt dergelijke problemen meestal oplossen door deze optie te gebruiken om de client te dwingen om de systeemkarakterset te gebruiken., Indien ingesteld op auto wordt de tekenset uit de client-omgeving gehaald (LC_CTYPE op Unix).
--defaults-extra-file=file lees dit bestand nadat de Globale bestanden zijn gelezen. Moet worden gegeven als de eerste optie.
--defaults-file=file lees alleen standaardopties uit het gegeven bestand. Moet worden gegeven als de eerste optie.
--defaults-group-suffix=suffix naast de gegeven groepen, lees ook groepen met dit achtervoegsel.,
--delimiter=name te gebruiken scheidingsteken. De standaard is de puntkomma (“;”).
-e, --execute=name commando uitvoeren en afsluiten. Schakelt --force en geschiedenisbestand uit. Het standaard uitvoerformaat is zoals dat geproduceerd met --batch.
-f, --force doorgaan, zelfs als we een SQL-fout krijgen. Stelt --abort-source-on-error in op 0.,
-h, --host=name Connect to host.
-H, --html Produce HTML output.
-U, --i-am-a-dummy Synonym for option --safe-updates, -U.
-i, --ignore-spaces Ignore space after function names., Hiermee kan men spaties hebben (inclusief tab-tekens en nieuwe regeltekens) tussen functienaam en’ (‘. Het nadeel is dat hierdoor ingebouwde functies gereserveerde woorden worden.
--init-command=str uit te voeren SQL-opdracht bij het verbinden met de MariaDB-server. Wordt automatisch opnieuw uitgevoerd bij het opnieuw verbinden.
--line-numbers schrijf regelnummers voor fouten. (Standaard aan; gebruik --skip-line-numbers om uit te schakelen.,)
--local-infile lokale mogelijkheid voor het laden van gegevensbestand inschakelen of uitschakelen. Zonder waarde schakelt de optie lokaal in. De optie kan gegeven worden als--local-infile=0 of --local-infile=1 om lokaal expliciet uit te schakelen of in te schakelen. Het inschakelen van lokaal heeft geen effect als de server het ook niet ondersteunt.
--max-allowed-packet=num de maximale pakketlengte om naar of van de server te ontvangen. De standaard is 16MB, de maximale 1GB.,
--max-join-size=num automatische limiet voor rijen in een samenvoeging bij gebruik van --safe-updates. Standaard is 1000000.
-G, --named-commands activeer benoemde opdrachten. Benoemde commando ’s betekenen MySQL’ s interne commando ‘ s (zie hieronder) . Indien ingeschakeld, kunnen de benoemde commando ‘ s worden gebruikt vanaf elke regel van de query, anders alleen vanaf de eerste regel, voordat een enter. Lange-formaat commando ’s zijn toegestaan, niet alleen korte-formaat commando’ s., Bijvoorbeeld, quit en \q worden beide herkend. Uitschakelen met --disable-named-commands. Deze optie is standaard uitgeschakeld.
--net-buffer-length=num de buffergrootte voor TCP/IP-en socket-communicatie. Standaard is 16KB.
-b, --no-beep pieptoon uitschakelen bij fout.
--no-defaults lees geen standaardopties uit een optiebestand. Moet worden gegeven als de eerste optie.,
-o, --one-database negeer statements, behalve die welke voorkomen terwijl de standaarddatabase degene is die op de opdrachtregel wordt genoemd. Deze filtering is beperkt en alleen gebaseerd op GEBRUIKSVERKLARINGEN. Dit is handig voor het overslaan van updates naar andere databases in het binaire log.
--pager te gebruiken Pager om resultaten weer te geven (alleen Unix). Als u geen optie opgeeft, wordt de standaard pager overgenomen van uw env variabele PAGER. Geldige pagers zijn minder, meer, kat, enz. Zie ook interactieve help (\h)., Deze optie werkt niet in batchmodus. Uitschakelen met --disable-pager. Deze optie is standaard uitgeschakeld.
-p, --password wachtwoord om te gebruiken bij het verbinden met de server. Als u het korte optieformulier (-p) gebruikt, kunt u geen ruimte hebben tussen de optie en het wachtwoord. Als u de wachtwoordwaarde weglaat na de --password of -p optie op de commandoregel, vraagt mysql om een. Het opgeven van een wachtwoord op de opdrachtregel moet als onveilig worden beschouwd., U kunt een optiebestand gebruiken om te voorkomen dat u het wachtwoord op de opdrachtregel geeft.
--plugin-dir=name map voor plugins aan de clientzijde.
-P, --port=num poortnummer te gebruiken voor verbinding of 0 voor standaard, in volgorde van voorkeur, mijn.cnf, $MYSQL_TCP_PORT,/etc / services, ingebouwde standaard (3306).
--print-defaults druk de lijst met programmeerargumenten af en sluit af. Moet worden gegeven als de eerste optie.,
--progress-reports voortgangsrapporten ophalen voor lang lopende opdrachten (zoals ALTER TABLE). (Standaard aan; gebruik --skip-progress-reports om uit te schakelen.)
--prompt=name Stel de MySQL-prompt in op deze waarde. Zie opdracht prompt voor opties.
--protocol=name het te gebruiken protocol voor verbinding (tcp, socket, pipe, geheugen).
-q, --quick bewaar het resultaat niet, print het rij voor rij af., Dit kan de server vertragen als de uitvoer wordt onderbroken. Gebruikt geen geschiedenisbestand.
-r, --raw voor tabeluitvoer maakt” boxing ” rond kolommen het mogelijk om de ene kolomwaarde van de andere te onderscheiden. Voor niet-tabulaire uitvoer (zoals wordt geproduceerd in batchmodus of wanneer de optie --batch of --silent wordt gegeven), worden speciale tekens in de uitvoer weggelaten zodat ze gemakkelijk kunnen worden geïdentificeerd., Newline, tab, NUL en backslash worden geschreven als \n, \t, \0, en
. De --raw optie schakelt dit teken uit om te ontsnappen.
--reconnect opnieuw verbinden als de verbinding verbroken wordt. Deze optie is standaard ingeschakeld. Uitschakelen met --disable-reconnect of skip-reconnect.,
-U, --safe-updates staan alleen die statements bijwerken en verwijderen toe die aangeven welke rijen moeten worden gewijzigd met behulp van sleutelwaarden. Als u deze optie in een optiebestand hebt ingesteld, kunt u deze overschrijven met --safe-updates op de commandoregel. Zie de optie — safe-updates gebruiken voor meer informatie.
--secure-auth weiger client te verbinden met server als het oude (pre-MySQL4.1.1) protocol gebruikt. Standaard false (In tegenstelling tot MySQL sinds 5,6, die standaard true is).,
--select-limit=num automatische limiet voor selecteren bij gebruik van –safe-updates. Standaard 1000.
--server-arg=name stuur ingebedde server dit als een parameter.
--shared-memory-base-name=name de naam van het gedeelde geheugen voor Windows-verbindingen die gedeeld geheugen gebruiken met een lokale server (gestart met de optie ‘–shared-memory’). Hoofdlettergevoelig.
--show-warnings waarschuwingen tonen na elk statement. Geldt voor interactieve en batch-modus.,
--sigint-ignore Sigintsignalen negeren (meestal CTRL-C).
-s, --silent wees meer stil. Deze optie kan meerdere keren worden gegeven om steeds minder output te produceren. Deze optie resulteert in niet-tabulaire uitvoerformaat en het ontsnappen van speciale tekens. Escaping kan uitgeschakeld worden door de raw-modus te gebruiken; zie de beschrijving voor de --raw optie.
-L, --skip-auto-rehash Schakel automatische heropname uit., See --auto-rehash.
-N, --skip-column-names Don’t write column names in results. See --column-names.
-L, --skip-comments Discard comments. Set by default, see --comments to enable.
-L, --skip-line-numbers Don’t write line number for errors. See --line-numbers.,
-L, --skip-progress-reports schakelt het verkrijgen van voortgangsrapporten voor lang lopende opdrachten uit. Zie --progress-reports.
-L, --skip-reconnect niet opnieuw verbinden als de verbinding verbroken is. Zie --reconnect.
-S, --socket=name voor verbindingen met localhost, het te gebruiken UNIX-socket-bestand of, in Windows, de naam van de te gebruiken benoemde pipe.,
--ssl activeert TLS. TLS is ook ingeschakeld, zelfs zonder deze optie in te stellen wanneer bepaalde andere TLS-opties zijn ingesteld. Beginnend met MariaDB 10.2, zal de optie --ssl het standaard verifiëren van het servercertificaat niet inschakelen. Om het servercertificaat te verifiëren, moet de gebruiker de optie --ssl-verify-server-cert opgeven.
--ssl-ca=name definieert een pad naar een PEM-bestand dat een of meer x509-certificaten moet bevatten voor vertrouwde certificaatautoriteiten (CA ‘ s) om te gebruiken voor TLS., Deze optie vereist dat u het absolute pad gebruikt, niet een relatief pad. Zie overzicht beveiligde verbindingen: Ca ‘ s (Certificate Authorities) voor meer informatie. Deze optie impliceert de optie --ssl.
--ssl-capath=name definieert een pad naar een map die één of meer PEM-bestanden bevat die elk één X509-certificaat moeten bevatten voor een vertrouwde certificaatautoriteit (ca) die voor TLS moet worden gebruikt. Deze optie vereist dat u het absolute pad gebruikt, niet een relatief pad., De map die door deze optie wordt opgegeven moet worden uitgevoerd met het openssl rehash Commando. Zie overzicht beveiligde verbindingen: Ca ‘ s (Certificate Authorities) voor meer informatie. Deze optie wordt alleen ondersteund als de client is gebouwd met OpenSSL of yaSSL. Als de client is gebouwd met GnuTLS of Schannel, dan wordt deze optie niet ondersteund. Zie TLS en cryptografie bibliotheken gebruikt door MariaDB voor meer informatie over welke bibliotheken worden gebruikt op welke platforms. Deze optie impliceert de optie --ssl.,
--ssl-cert=name definieert een pad naar het x509-certificaatbestand dat Voor TLS moet worden gebruikt. Deze optie vereist dat u het absolute pad gebruikt, niet een relatief pad. Deze optie impliceert de optie --ssl.
--ssl-cipher=name lijst van toegestane versleutelingssuites voor TLS. Deze optie impliceert de optie --ssl.
--ssl-crl=name definieert een pad naar een PEM-bestand dat een of meer ingetrokken X509-certificaten moet bevatten om te gebruiken voor TLS., Deze optie vereist dat u het absolute pad gebruikt, niet een relatief pad. Zie overzicht beveiligde verbindingen: Certificaatintrekkingslijsten (CRL ‘ s) voor meer informatie. Deze optie wordt alleen ondersteund als de client is gebouwd met OpenSSL of Schannel. Als de client is gebouwd met yaSSL of GnuTLS, dan wordt deze optie niet ondersteund. Zie TLS en cryptografie bibliotheken gebruikt door MariaDB voor meer informatie over welke bibliotheken worden gebruikt op welke platforms.,
--ssl-crlpath=name definieert een pad naar een map die één of meer PEM-bestanden bevat die elk een ingetrokken X509-certificaat moeten bevatten om te gebruiken voor TLS. Deze optie vereist dat u het absolute pad gebruikt, niet een relatief pad. De map die door deze optie wordt opgegeven moet worden uitgevoerd met het openssl rehash Commando. Zie overzicht beveiligde verbindingen: Certificaatintrekkingslijsten (CRL ‘ s) voor meer informatie. Deze optie wordt alleen ondersteund als de client is gebouwd met OpenSSL., Als de client is gebouwd met yaSSL, GnuTLS of Schannel, dan wordt deze optie niet ondersteund. Zie TLS en cryptografie bibliotheken gebruikt door MariaDB voor meer informatie over welke bibliotheken worden gebruikt op welke platforms.
--ssl-key=name definieert een pad naar een privésleutelbestand dat Voor TLS moet worden gebruikt. Deze optie vereist dat u het absolute pad gebruikt, niet een relatief pad. Deze optie impliceert de optie --ssl.
--ssl-verify-server-cert maakt verificatie van servercertificaten mogelijk. Deze optie is standaard uitgeschakeld.,
-t, --table Display output in tabelformaat. Dit is de standaard voor interactief gebruik, maar kan worden gebruikt om tabeluitvoer te produceren in batchmodus.
--tee=name voeg alles toe aan het uitvoerbestand. Zie ook interactieve help (\h). Werkt niet in batchmodus. Uitschakelen met --disable-tee. Deze optie is standaard uitgeschakeld.
--tls-version=name deze optie accepteert een door komma ‘ s gescheiden lijst van TLS-protocolversies., Een TLS-protocolversie wordt alleen ingeschakeld als deze in deze lijst voorkomt. Alle andere versies van het TLS-protocol zijn niet toegestaan. Zie overzicht beveiligde verbindingen: TLS-protocolversies voor meer informatie. Deze optie werd toegevoegd in MariaDB 10.4.6.
-n, --unbuffered Spoelbuffer na elke query.
-u, --user=name gebruiker voor login indien niet de huidige gebruiker.
-v, --verbose Schrijf meer., (-v-V-V geeft de tabel output formaat).
-V, --version versie-informatie tonen en afsluiten.
-E, --vertical de uitvoer van een query (rijen) verticaal afdrukken. Gebruik het scheidingsteken \G om toe te passen op een bepaald statement als deze optie niet is ingeschakeld.
-w, --wait als de verbinding niet tot stand kan worden gebracht, wacht en probeer het opnieuw in plaats van af te breken.,
-X, --xml produceer XML-uitvoer. Zie de mysqldump — xml optie voor meer.

Optiebestanden

naast het lezen van opties vanaf de opdrachtregel, kan mysql ook opties uit optiebestanden lezen. Als een onbekende optie wordt gegeven aan mysql in een optiebestand, dan wordt deze genegeerd.

de volgende opties hebben betrekking op hoe MariaDB command-line tools optiebestanden afhandelt., Ze moeten worden gegeven als het eerste argument op de commandoregel:

in MariaDB 10.2 en later is mysql gekoppeld met MariaDB Connector/C. MariaDB Connector/C kan echter nog niet overweg met het ontleden van optiebestanden voor deze client. Dat wordt nog steeds uitgevoerd door de server optie Bestand parsing code. Zie MDEV-19035 voor meer informatie.,

Groepen

mysql leest alle opties uit de volgende groepen van de optie bestanden:

Groep Beschrijving
Opties gelezen door mysql, waarin zowel MariaDB Server en MySQL Server.
opties gelezen door mysql. Beschikbaar vanaf MariaDB 10.4.6.,
opties gelezen door alle MariaDB-en MySQL-clientprogramma ‘ s, die zowel MariaDB-als MySQL-clients bevatten. Bijvoorbeeld, mysqldump.
opties gelezen door alle MariaDB-clientprogramma ‘ s en de MariaDB-Server. Dit is handig voor opties zoals socket en poort, wat gebruikelijk is tussen de server en de clients.
opties die door alle MariaDB-clientprogramma ‘ s worden gelezen.,

Hoe je Opgeven Welk Protocol te Gebruiken Wanneer u Verbinding maakt met de mysqld-Server

Het volgende geldt voor alle MySQL en MariaDB opdrachtregel klanten:

U kunt de kracht die het protocol moet worden gebruikt om verbinding te maken met de mysqld server door het geven van de protocol optie op een van de volgende waarden: tcp, socket, pipe of memory.,

als protocol niet is gespecificeerd, dan gebeurt het volgende:

Linux/Unix

  • Als hostname niet is gespecificeerd of hostname is localhost, dan worden Unix Sockets gebruikt. Ongebruikte verbindingsparameters (zoals port) worden genegeerd.
  • In andere gevallen (hostname is gegeven en het is niet localhost) wordt een TCPIP-verbinding gebruikt via de optie port.

merk op dat localhost een speciale waarde is., Het gebruik van 127.0.0.1 is niet hetzelfde. De laatste zal verbinding maken met de mysqld server via tcpip.

Windows

  • Als shared-memory-base-name is gespecificeerd en hostname is niet gespecificeerd of hostname is localhost, dan zal de verbinding plaatsvinden via gedeeld geheugen. Ongebruikte verbindingsparameters (zoals port) worden genegeerd.,
  • als shared-memory-base-name niet is gespecificeerd en hostname niet is gespecificeerd of hostname is localhost, dan zal de verbinding plaatsvinden via vensters met de naam pipes.
  • benoemde pipes zullen ook worden gebruikt als delibmysql / libmariadb clientbibliotheek detecteert dat de client tcpip niet ondersteunt.
  • in andere gevallen wordt een TCPIP-verbinding gebruikt via de optie port . ,

hoe te testen welk Protocol wordt gebruikt

hetstatus commando toont u informatie over welk protocol wordt gebruikt:

MySQL commando ’s

Er zijn ook een aantal commando’ s die in de client kunnen worden uitgevoerd. Merk op dat alle tekstcommando ’s eerst on line moeten zijn en eindigen met’; ‘

het Mysql_history bestand

op Unix schrijft de MySQL client een record van uitgevoerde statements naar een historyfile. Standaard krijgt dit bestand de naam .mysql_history en wordt het aangemaakt in uw homedirectory., Om een ander bestand te specificeren, stelt u de waarde in van de variabele mysql_histfile-Environment.

De .mysql_history bestand moet worden beschermd met een beperkende toegangsmodus omdat gevoelige informatie kan worden geschreven om het, zoals de tekst van SQLstatements die wachtwoorden bevatten.

Als u geen geschiedenisbestand wilt behouden, verwijdert u dit eerst .mysql_history als het bestaat, en gebruik dan een van de volgende technieken:

  • Stel de variabele mysql_histfile in op /dev / null. Om ervoor te zorgen dat deze instelling van kracht wordt elke keer dat je inlogt, plaats je de instelling in een van de opstartbestanden van je shell.,
  • aanmaken .mysql_history als een symbolische link naar/dev/null:
shell> ln -s /dev/null $HOME/.mysql_history

u hoeft dit maar één keer te doen.

prompt opdracht

het prompt Commando configureert de standaard prompt \N >. De string voor het definiëren van de prompt kan de volgende speciale sequenties bevatten.

MySQL Tips

Deze sectie beschrijft enkele technieken die u kunnen helpen omMySQL effectiever te gebruiken.,

weergave van Querieresultaten verticaal

sommige querieresultaten zijn veel leesbaarder wanneer ze verticaal worden weergegeven, in plaats van in het gebruikelijke horizontale tabelformaat. Query ‘ s kunnen verticaal worden weergegeven door de query te termineren met \G in plaats van een puntkomma. Bijvoorbeeld, langere tekstwaarden die nieuwe regels bevatten zijn vaak veel gemakkelijker te lezen met verticaloutput:

gebruikmakend van de –safe-updates optie

voor beginners is een nuttige opstartoptie --safe-updates (of--i-am-a-dummy, wat hetzelfde effect heeft)., Het is een helpvoor gevallen waarin u een DELETE FROM tbl_name statement hebt uitgegeven, maar deWHERE clausule bent vergeten. Normaal verwijdert een dergelijk statement alle rijen uit de tabel. Met --safe-updates kunt u alleen rijen verwijderen door de sleutelwaarden op te geven die hen identificeren. Dit helpt accidenten te voorkomen.,

wanneer u de optie --safe-updates gebruikt, geeft mysql het volgende statement uit wanneer het verbinding maakt met de MariaDB-server:

SET sql_safe_updates=1, sql_select_limit=1000, sql_max_join_size=1000000;

Het set statement heeft de volgende effecten:

  • Het is niet toegestaan een statement bij te werken of te verwijderen tenzij u een belangrijke beperking opgeeft in de WHERE-clausule of een LIMIETCLAUSULE (of beide)). Bijvoorbeeld:
UPDATE tbl_name SET not_key_column=val WHERE key_column=val;UPDATE tbl_name SET not_key_column=val LIMIT 1;
  • De server beperkt alle groteSELECT resultaten tot 1.000 rijen, tenzij het statement Een LIMIT clausule bevat.,
  • de server verbreekt multiple-table SELECT statements die waarschijnlijk meer dan 1.000.000 rijcombinaties moeten onderzoeken.
mysql --safe-updates --select_limit=500 --max_join_size=10000

het uitschakelen van MySQL Auto-Reconnect

als de MySQL-client zijn verbinding met de server verliest tijdens het verzenden van astatement, probeert het onmiddellijk en automatisch een keer opnieuw verbinding te maken met de server en het statement opnieuw te verzenden., Echter, zelfs als mysql erin slaagt verbinding te maken, is je eerste verbinding beëindigd en zijn al je vorige sessionobjects en instellingen verloren gegaan: tijdelijke tabellen, de autocommit mode, anduser-gedefinieerde en sessievariabelen. Ook, elke huidige transactie rolt terug.Dit gedrag kan gevaarlijk voor je zijn, zoals in het volgende voorbeeld waar de server werd afgesloten en herstart tussen de eerste en tweede statementszonder dat je het wist:

de @a user variabele is verloren gegaan met de verbinding, en na de verbinding is het ongedefinieerd., Als het belangrijk is om MySQL te laten beëindigen met een fout als de verbinding verloren is gegaan, kunt u de MySQL client starten met de --skip-reconnect optie.

zie ook

  • verbindingsproblemen oplossen
  • Leesregelcommando ‘ s en configuratie

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *