Externe verbinding met een MySQL-server met behulp van MySQL Workbench. Verbinding maken met MySQL op de opdrachtregel in Windows

Om een ​​MySQL-database aan te maken en er vervolgens de mod op aan te sluiten, moet u “Webhosting” bestellen in de sectie “Services”. De service is gratis en biedt u de mogelijkheid om maximaal 10 databases aan te maken. Nadat u de service heeft besteld, gaat u naar de instellingen. Daar vindt u de URL, de login en het wachtwoord van het webhostingcontrolepaneel (schermafbeelding hieronder).

Na autorisatie vindt u in het menu (dat zich aan de linkerkant bevindt) het gedeelte 'Extra', waarin u naar het item 'Databases' moet gaan. U wordt naar de sectie Databasebeheer geleid, waar u de databases kunt zien die u heeft aangemaakt. In dit gedeelte kunt u een nieuwe database aanmaken door op de knop “Aanmaken” te klikken (schermafbeelding hieronder).

Nadat u op de knop ‘Aanmaken’ hebt geklikt, ziet u een venster met formulieren die moeten worden ingevuld. Bedenk een unieke databasenaam en log in voor de nieuwe gebruiker. Zorg ervoor dat u het vakje "Remote Access" aanvinkt, anders kan uw mod geen verbinding maken met de database. Een heel belangrijk punt! U moet de ingevoerde gegevens onthouden, omdat deze zullen worden gebruikt bij het aansluiten van de mod; het is beter om ze afzonderlijk in een tekstdocument op te schrijven. In de onderstaande schermafbeelding ziet u een voorbeeld van het invullen.

Over het algemeen is er al een database aangemaakt en kunnen de gegevens in de mod worden ingevoerd, maar het komt vaak voor dat wanneer je nog steeds SQL-gegevensdumps in de gemaakte database moet importeren, deze de .sql-extensie hebben en in de map met uw mod-bestanden. Als u dit niet nodig heeft, kunt u de volgende twee paragrafen overslaan. U kunt importeren met behulp van de tool “PhpMyAdmin” (op PhpMyAdmin), die zich in het webhostingmenu in de sectie “Aanvullend” bevindt. toepassingen.” Om te autoriseren voert u de gegevens in die u hierboven zelf heeft aangemaakt, namelijk de gebruikerslogin en het wachtwoord voor uw database (zie onderstaande schermafbeelding).

Na autorisatie ziet u aan de linkerkant een lijst met uw databases, klik met de linkermuisknop op de door u aangemaakte database en ga vervolgens naar het menu-item “Importeren”. Selecteer “Blader op uw computer” en klik vervolgens op de knop “Bestand selecteren”. Dit alles wordt geïllustreerd in de onderstaande schermafbeelding. Nadat u de gewenste dump in .sql-formaat hebt geselecteerd, klikt u op de knop "Vooruit" en het importproces begint. Wanneer het importeren is voltooid, ziet u het bericht “Importeren voltooid, N queries voltooid (dumpnaam.sql).”

Het laatste deel. Gegevens uit de database invoeren in de mod. Om dit te doen, moet u de pwn-scripteditor (pawno.exe) gebruiken, deze wordt standaard meegeleverd met de server voor Windows (SA-MP Windows Server Download), u kunt deze downloaden van de officiële website SA-MP.com (don Laat dit je niet misleiden, op onze Linux-hosting hebben we alleen het programma pawno.exe uit de map pawno nodig). Deze editor bevindt zich ook heel vaak in het archief met je gedownloade mod.

Open de pawno.exe-editor. Selecteer Openen in het menu Bestand om uw mod-bron te openen. De broncode heeft de extensie .pwn en bevindt zich in de map gamemodes. Na het openen moet u de volgende velden zoeken en invullen (uitleg voor de punten tussen haakjes):

#define MYSQL_HOST "" (databasehost, specificeer altijd 31.28.170.123)
#define MYSQL_USER "" (gebruiker)
#define MYSQL_DATABASE "" (basisnaam)
#define MYSQL_PASSWORD "" (gebruikerswachtwoord)

Zorg ervoor dat u de volgende waarde opgeeft als host: 31.28.170.123. Dit IP-adres is de host van onze webhostingdatabase (verwar dit niet met het IP-adres van uw spelserver). Voer in de overige velden de gegevens in die u zelf heeft aangemaakt (we hebben u immers niet voor niets in de fase van het aanmaken van de database verteld dat u ze moet onthouden). Als voorbeeld van de reeds ingevoerde gegevens, zie onderstaande schermafbeelding.

Het enige dat overblijft is om de wijzigingen in onze mod te compileren. Om dit te doen, opent u het menu "Build" en selecteert u "Compile" of drukt u eenvoudig op de F5-toets. Na een succesvolle compilatie heb je een bestand met de naam van je bewerkte mod, maar niet in het .pwn-formaat, maar in het kant-en-klare .amx-formaat, dat je naar je gameserver kunt uploaden met

28/02/09 11,7K

Dit artikel is bedoeld voor degenen die voor de eerste keer worden geconfronteerd met de noodzaak om een ​​externe verbinding met een MySQL-database tot stand te brengen. Het artikel beschrijft de problemen die kunnen optreden bij het opzetten van een externe verbinding en methoden om deze te overwinnen.

Hoe breng ik een verbinding tot stand met een externe basis?
Om een ​​externe verbinding tot stand te brengen, moet u parameters opgeven die kenmerkend zijn voor de verbinding die tot stand wordt gebracht. Dit

* --gastheer
* --protocol
* --poort

Van de vier mogelijke protocollen staat alleen TCP/IP een externe verbinding toe. De eerste vereiste is dus dat de computer via TCP/IP toegankelijk is vanaf het netwerk. Vervolgens moet u de hostnaam (of het IP-adres van de machine waarop de database zich bevindt) toevoegen aan de verbindingsregel:
mysql —host=host_name Houd er rekening mee dat het opgeven van localhost als de hostnaam (of de afwezigheid van een dergelijke parameter, wat hetzelfde is, aangezien dit de standaardwaarde is) resulteert in toegang tot de lokale machine.

Houd er rekening mee dat parameters twee notatievormen hebben: lang en kort. Als de parameter op zijn beurt een waarde heeft (in het geval van een host moet u bijvoorbeeld de naam opgeven van de host waarmee u verbinding wilt maken), dan kan de korte vorm van het item worden gebruikt met of zonder een spatie (de uitzondering op deze regel is het wachtwoord). De volgende drie vermeldingen zijn dus gelijkwaardig:

* mysql —host=mijnhost.ru
* mysql -h mijnhost.ru
* mysql -hmyhost.ru

Hoe kan ik een verbinding met een externe basis tot stand brengen?

In MySQL wordt een gebruiker gekenmerkt door twee parameters: een naam en een host waartoe hij toegang heeft. Standaard is toegang alleen toegestaan ​​vanaf de lokale machine, d.w.z. voor gebruiker gebruiker@localhost. Toegangsrechten worden aan gebruikers verleend met behulp van de opdracht GRANT. Het commando wordt uitgevoerd als root.

Als ik bijvoorbeeld een gebruiker wil maken die verbinding kan maken vanaf elke host met volledige rechten, moet ik de volgende opdracht uitvoeren:
VERLEEN ALLE PRIVILEGES OP `databasenaam`.* AAN mijngebruiker@% GEIDENTIFICEERD DOOR 'wachtwoord';

Opmerking. Houd er rekening mee dat deze opdracht toegang geeft aan de gebruiker myuser vanaf alle IP's behalve 127.0.0.1, overeenkomend met localhost.
Voor de gebruiker myuser@localhost moet u rechten verlenen met een afzonderlijk GRANT-commando.

Als u besluit de lokale machine op afstand te benaderen met behulp van het TCP/IP-protocol, vergeet dan niet dat myuser@localhost en myuser@ip_of_your_computer verschillende gebruikers zijn en dat elk van hen rechten moet krijgen met een afzonderlijk commando.

Het tweede voorbeeld laat zien hoe u het recht kunt geven om de tijdzonetabel in de mysql-database te lezen aan de gebruiker myuser vanaf de machine 192.168.0.76 met het wachtwoord mypassy:
VERLEEN SELECTIE OP mysql.time_zone TO [e-mailadres beveiligd] GEÏDENTIFICEERD DOOR 'mypassy';
Opkomende moeilijkheden

Als je na al het doorlopen van de stappen een foutmelding krijgt (Can’t connect to Mysql Server on ‘your IP’(10061)), dan wordt de verbinding geblokkeerd door een firewall (windows firewall, outpost, antivirus of iets anders).

Als er een fout optreedt (de client ondersteunt geen authenticatieprotocolverzoek door de server; overweeg een upgrade van de MySQL-client), ondersteunt de client (dat wil zeggen uw programma) het door de server vereiste protocol niet.
Deze fout kan worden verholpen door het wachtwoord in te stellen op het oude formaat:
STEL WACHTWOORD IN VOOR gebruiker@host = OLD_PASSWORD('wachtwoord');

26 november 2016 12:27 uur 5.360 weergaven | Geen opmerkingen

De databaseserver slaat een enorme hoeveelheid belangrijke informatie op in tabellen. De eenvoudigste manier om met deze gegevens te communiceren is op uw lokale computer met behulp van een grafische interface. Om een ​​externe verbinding met een databaseserver tot stand te brengen, moet u MySQL doorgaans configureren om op alle interfaces te luisteren, de toegang tot poort 3306 in de firewall beperken en gebruikers- en hostmachtigingen configureren. Directe verbindingen met MySQL kunnen een veiligheidsrisico vormen.

Om deze problemen te elimineren, zijn er verschillende tools voor externe verbinding: HeidiSQL op Windows, Sequel Pro voor macOS, platformonafhankelijke tool MySQL Workbench, enz. Met deze tools kunt u een SSH-verbinding met een databaseserver tot stand brengen en alle potentiële gevaren omzeilen.

Deze korte handleiding helpt u verbinding te maken met een externe databaseserver met behulp van MySQL Workbench.

Vereisten

  • MySQL-server met SSH-toegang (installatie-instructies vindt u in).
  • MySQL Workbench-tool geïnstalleerd op de lokale machine. MySQL Workbench is geschikt voor de meeste besturingssystemen (Windows, macOS, Ubuntu Linux, RedHat Linux, Fedora, etc.). Bezoek deze pagina om het installatieprogramma te downloaden.

U hebt ook de volgende informatie over de server nodig:

  • Extern IP-adres van de MySQL-server.
  • SSH-poort (standaard - 22).
  • Gebruikersaccount met SSH-toegang tot de server (met wachtwoordverificatie of sleutels).
  • MySQL-gebruikersreferenties.

SSH-verbinding met databaseserver

Nadat u MySQL Workbench hebt geïnstalleerd, start u het programma. Maak een nieuwe verbinding. Om dit te doen, klikt u op de knop + (in het hoofdvenster naast MySQL-verbindingen).

Het venster Verbinden met database verschijnt op het scherm. Vul de gevraagde gegevens in:

  • Voer in het veld Verbindingsnaam een ​​beschrijvende naam in voor de verbinding (de verbindingsnaam helpt de ene verbinding van de andere te onderscheiden). We gebruiken bijvoorbeeld database_for_myapp.
  • Vervang de waarde voor Verbindingsmethode door Standaard TCP/IP via SSH
  • Geef in het veld SSH-hostnaam het IP-adres van de MySQL-server op. Als u de standaard SSH-poort hebt gewijzigd, voert u na het IP-adres een aangepast poortnummer in, gescheiden door een dubbele punt.
  • Geef bij SSH-gebruikersnaam de gebruikersnaam voor de SSH-verbinding op.
  • Voer bij SSH-wachtwoord het wachtwoord van de geselecteerde gebruiker in. Als u sleutels gebruikt in plaats van een wachtwoord, kies dan een SSH-sleutel.
  • Laat de velden MySQL-hostnaam en MySQL Server-poort op hun standaardwaarden staan.
  • Geef bij Gebruikersnaam de MySQL-gebruikersnaam op.
  • Voer bij Wachtwoord een wachtwoord in of laat het veld leeg. Als u geen wachtwoord opslaat in MySQL Workbench, zal het programma hierom vragen wanneer u verbinding maakt.
  • Om er zeker van te zijn dat alle instellingen correct zijn, selecteert u Verbinding testen.
  • Om de verbinding tot stand te brengen, klikt u op OK.

Eenmaal verbonden met de database, kunt u informatie over MySQL bekijken: databasestatus, huidige verbindingen en configuraties, gebruikers en toegangsrechten. MySQL Workbench ondersteunt ook het importeren en exporteren van MySQL-dumps, zodat u snel een back-up van uw database kunt maken en deze kunt herstellen.

Een lijst met databases is te vinden in SCHEMAS in het linkernavigatievenster. Met een pijl naast elke database kunt u informatie uitvouwen en door tabellen en objecten navigeren. U kunt tabellen bekijken, complexe query's schrijven en gegevens bewerken.

Met MySQL Workbench kunt u ook verbindingen beheren. Om dit te doen, selecteert u Database → Verbinden met database in het menu en drukt u vervolgens op ⌘U op Mac of CTRL+U op Windows en Linux. Maak een nieuwe verbinding om verbinding te maken met een andere database.

Conclusie

Met MySQL Workbench kunt u snel een veilige SSH-tunnel naar een externe MySQL-databaseserver maken en met gegevens communiceren via uw lokale machine. Deze methode elimineert alle potentieel gevaarlijke acties en vereist geen wijzigingen in de MySQL-beveiligingsinstellingen.

Trefwoorden: ,

Het is niet alleen mogelijk via PHP. MySQL wordt geleverd met een consoleclient waarmee u verbinding kunt maken met een MySQL-server. Console - dit betekent dat het programma geen vensterinterface heeft, maar alleen een opdrachtregelinterface waarin databases worden benaderd met behulp van SQL-query's.

De opdrachten om verbinding te maken met MySQL op de opdrachtregel, en nog meer de SQL-query's zelf, zijn identiek voor . In het volgende zal ik kortheidshalve "MySQL" schrijven, maar overal bedoel ik "MySQL of MariaDB", aangezien er in dit geval geen verschil tussen beide is.

Door via de opdrachtregel verbinding te maken met het MySQL DBMS, kunt u verschillende taken uitvoeren: databases en hun tabellen bekijken, queries naar databases sturen en de resultaten ontvangen van het uitvoeren van deze queries.

Om verbinding te maken met de MySQL-server, gebruikt u een clientprogrammaopdracht met de naam mysql.exe. Het moet worden gestart, maar dit moet niet worden gedaan door te dubbelklikken, zoals bij een gewoon programma, maar vanaf de opdrachtregel.

Laten we beginnen door op de sneltoets te drukken Winnen+r en laten we het doen

Er wordt een opdrachtprompt geopend.

Nu moeten we naar de map met het bestand gaan mysql.exe. Deze map bak in de map waar uw MySQL DBMS is geïnstalleerd. Ik heb bijvoorbeeld MariaDB, dat in de map is geïnstalleerd C:\Server\bin\mariadb\. Daarom bevindt het bestand waarin we geïnteresseerd zijn zich in de map C:\Server\bin\mariadb\bin\. Gebruik de opdracht om naar deze map te gaan CD als volgt:

Cd C:\Server\bin\mariadb\bin\

Vervang in deze opdracht C:\Server\bin\mariadb\bin\ door het juiste pad voor uw systeem

Laten we nu het bestand mysql.exe uitvoeren. Het is niet nodig om de bestandsextensie.exe op te geven - het systeem raadt zelf wat we bedoelen. We moeten ook van de optie gebruik maken -u En -P. Na de eerste optie moet u de gebruikersnaam opgeven - wortel. Na de tweede optie staat het wachtwoord voor de gebruiker. In mijn geval is het wachtwoord niet ingesteld, dus ik voer het uit zonder de optie -P:

MySQL-u root

Het lijkt misschien alsof er niet veel is veranderd, maar de nieuwe opdrachtprompt

MariaDB [(geen)]>

geeft aan dat we verbonden zijn met de MySQL-server. Om precies te zijn: in mijn geval zijn we verbonden met de MariaDB-server.

Om de lijst met databases te bekijken, voert u de opdracht in:

TOON DATABASES;

Om vervolgquery's naar een specifieke database te sturen (bijvoorbeeld test), gebruikt u de opdracht GEBRUIK:

GEBRUIK-test;

Om de tabellen in de geselecteerde database te bekijken, voert u de opdracht uit:

TOON TAFELS;

Laten we een tabel maken:

MAAK TABEL AuteursTBL (AuthorID INT NOT NULL AUTO_INCREMENT, AuthorName VARCHAR(100), PRIMARY KEY(AuthorID));

Laten we nogmaals naar de inhoud van de testdatabase kijken.

Nadat u de MySQL-server heeft geïnstalleerd, kunt u er alleen vanaf dezelfde machine verbinding mee maken. Dit werd gedaan voor systeembeveiligingsdoeleinden, aangezien MySQL in de meeste gevallen op het web wordt gebruikt en daar, in zeldzame gevallen, de webserver en de databaseserver gescheiden zijn.

In het bedrijfssegment is het juister om 1 server te gebruiken voor alle soortgelijke taken. Het is stom om MySQL met één database te houden op elke server die het nodig heeft. Daarom moet er één databaseserver zijn waarop het vereiste aantal databases is geïnstalleerd voor verschillende taken.

Trouwens, op het web worden een databaseserver en een webserver alleen gescheiden in gevallen waarin de kracht van één server niet voldoende is. U huurt een dedicated server en host daarop de database. Ik zou graag willen verduidelijken dat het redelijk is om dit alleen binnen één DC te doen.

Sta verbinding met MySQL op afstand toe

In het configuratiebestand van MySQL zelf staat een parameter bind-adres die hiervoor verantwoordelijk is, dus:

  1. open het configuratiebestand om te bewerken:
    sudo nano /etc/mysql/my.cnf
  2. commentaar uit de regel:
    # bindadres = 127.0.0.1
  3. herstart MySQL:
    sudo service mysql opnieuw opstarten

Het commentaar geven op deze regel staat gelijk aan het toewijzen van een IP-adres 0.0.0.0 , dat wil zeggen, laat iedereen verbinding maken. U kunt op deze regel niet twee IP-adressen opgeven. Als u de verbinding met de MySQL-server wilt beperken, moet u de mogelijkheden van iptables gebruiken.

Nu kunt u via een telnet-client verbinding maken met de databaseserver, maar om in te loggen heeft u een account nodig dat niet alleen verbinding mag maken vanaf localhost. Om dit te doen, moet u vanaf de server zelf verbinding maken met MySQL en de volgende gebruiker aanmaken:

Mysql -u root-p

En maak een gebruiker aan met het commando:

VERLEEN ALLE PRIVILEGES OP *.* AAN "nieuwe_gebruiker"@"remote_address" GEÏDENTIFICEERD DOOR "wachtwoord" MET TOEKENNINGOPTIE;

Deze regel creëert een gebruiker met onbeperkte rechten, wat niet helemaal correct is. Het is juister om de toegang van de gebruiker die op afstand verbinding maakt, zoveel mogelijk te beperken. Het commando zou er dus als volgt uit kunnen zien:

SUBSIDIE SELECTEREN,INSERT,VERWIJDEREN,UPDATE,MAKEN,WIJZIGEN OP "databasenaam".* NAAR "nieuwe_gebruiker"@"remote_address" GEIDENTIFICEERD DOOR "wachtwoord" MET SUBSIDIEOPTIE;

Met deze opdracht hebben we de rechten van de gebruiker beperkt tot slechts één database en de acties daarmee.

Een compleet overzicht van alle rechten die voor een gebruiker kunnen worden opgegeven:

  • ALLE VOORRECHTEN– alle rechten op het opgegeven object, met uitzondering van het toekennen van rechten op dit object;
  • CREËREN– het recht om een ​​tafel aan te maken;
  • WIJZIGEN– het recht om van tafel te wisselen;
  • DRUPPEL– het recht om de tafel te vernietigen;
  • VERGRENDEL TAFELS– het recht om de tafel op slot te doen;
  • MAAK TIJDELIJKE TAFELS– het recht om tijdelijke tabellen aan te maken;
  • CREËER ROUTINE– het recht om opgeslagen procedures en functies te creëren;
  • WIJZIG ROUTINE– het recht om opgeslagen procedures en functies te wijzigen of te vernietigen;
  • CREËER UITZICHT– het recht om een ​​vertegenwoordiging op te richten;
  • TREKKER– het recht om triggers te creëren en te vernietigen;
  • INDEX– rechten om indexen te creëren en te vernietigen;
  • UITVOEREN– het recht om opgeslagen procedures en functies uit te voeren;
  • EVENEMENT– het recht om evenementen te creëren;
  • MAAK GEBRUIKER AAN– rechten om een ​​gebruiker aan te maken, te vernietigen, te hernoemen en alle rechten te verwijderen. Alleen benoemd op mondiaal niveau;
  • SELECTEER– recht op monster;
  • VERWIJDEREN– recht op verwijdering;
  • INVOEGEN– recht om in te voegen;
  • UPDATE– recht op update;
  • BESTAND– het recht om de opdrachten SELECT ... INTO OUTFILE en LOAD DATA INFILE te gebruiken;
  • PROCES– het recht om alle processen te bekijken met behulp van de opdracht SHOW PROCESSLIST;
  • TOON DATABASES– het recht om de lijst met regelingen in te zien;
  • TOON BEELD– het recht om de lijst met weergaven te bekijken;
  • UITSCHAKELEN– recht op sluiting.