Como ter Acesso Remoto ao MYSQL com XAMP e Windows
Innehållsförteckning:
- Konfigurera MySQL Server
- Ge åtkomst till en användare från en fjärrmaskin
- Konfigurera brandväggen
- iptables
- UFW
- FirewallD
- Verifiera ändringarna
- Slutsats
Som standard lyssnar MySQL-servern endast på anslutningar från localhost, vilket innebär att den endast kan nås av applikationer som körs på samma värd.
I vissa situationer är det dock nödvändigt att komma åt MySQL-servern från fjärrplats. Till exempel när du vill ansluta till den fjärrstyrda MySQL-servern från ditt lokala system, eller när du använder en multiserverinstallation där applikationen körs på en annan maskin från databaseservern. Ett alternativ skulle vara att komma åt MySQL-servern via SSH-tunneln och ett annat är att konfigurera MySQL-servern så att den accepterar fjärranslutningar.
I den här guiden kommer vi att gå igenom stegen som krävs för att tillåta fjärranslutningar till en MySQL-server. Samma instruktioner gäller för MariaDB.
Konfigurera MySQL Server
Det första steget är att ställa in MySQL-servern att lyssna på en specifik IP-adress eller alla IP-adresser på maskinen.
Om MySQL-servern och klienterna kan kommunicera med varandra via ett privat nätverk, är det bästa alternativet att ställa in MySQL-servern så att den bara lyssnar på den privata IP-adressen. Annars, om du vill ansluta till servern via ett offentligt nätverk, ställ MySQL-servern in för att lyssna på alla IP-adresser på maskinen.
För att göra det måste du redigera MySQL-konfigurationsfilen och lägga till eller ändra värdet för alternativet
bind-address
. Du kan ställa in en enda IP-adress och IP-intervall. Om adressen är
0.0.0.0
accepterar MySQL-servern anslutningar på alla värd IPv4-gränssnitt. Om du har IPv6 konfigurerat på ditt system använder du
::
istället för
0.0.0.0
.
Platsen för MySQL-konfigurationsfilen skiljer sig beroende på distributionen. I Ubuntu och Debian finns filen på
/etc/mysql/mysql.conf.d/mysqld.cnf
, medan
/etc/mysql/mysql.conf.d/mysqld.cnf
i Red Hat-baserade distributioner som CentOS ligger på
/etc/my.cnf
.
Öppna filen med din textredigerare:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Sök efter en rad som börjar med
bind-address
och ställ in dess värde på IP-adressen som en MySQL-server ska lyssna på.
Som standard är värdet inställt på
127.0.0.1
(lyssnar endast i localhost).
I det här exemplet ställer vi in MySQL-servern så att den lyssnar på alla IPv4-gränssnitt genom att ändra värdet till
0.0.0.0
bind-address = 0.0.0.0 # skip-networking
Om det finns en rad som innehåller
skip-networking
, ta bort den eller kommentera den genom att lägga till
#
i början av raden.
I MySQL 8.0 och senare kanske inte bindeadressdirektivet finns. Lägg i det här fallet till under
sektion.
När du är klar, starta om MySQL-tjänsten så att ändringarna träder i kraft. Endast root eller användare med sudo-privilegier kan starta om tjänster.
Om du vill starta om MySQL-tjänsten på Debian eller Ubuntu skriver du:
sudo systemctl restart mysql
På RedHat-baserade distributioner som CentOS för att starta om servicekörningen:
Ge åtkomst till en användare från en fjärrmaskin
Nästa steg är att tillåta åtkomst till databasen till fjärranvändaren.
Logga in på MySQL-servern som rotanvändare genom att skriva:
sudo mysql
mysql -uroot -p
Från inuti MySQL-skalet använder du
GRANT
uttalandet för att ge åtkomst för fjärranvändaren.
GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';
Var:
-
database_nameär namnet på databasen som användaren kommer att ansluta till.user_nameär namnet på MySQL-användaren.ip_addressär den IP-adress som användaren kommer att ansluta till. Använd%att låta användaren ansluta från vilken IP-adress som helst.user_passwordär användarlösenordet.
Till exempel, för att ge åtkomst till en databasdbname till en användare som heter
foo
med lösenord
my_passwd
från en
10.8.0.5
med IP
10.8.0.5
, skulle du köra:
GRANT ALL ON dbname.* TO foo@'10.8.0.5' IDENTIFIED BY 'my_passwd';
Konfigurera brandväggen
Det sista steget är att konfigurera din brandvägg för att tillåta trafik på port
3306
(MySQL standardport) från fjärrmaskinerna.
iptables
sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
Tillåt åtkomst från en specifik IP-adress:
sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT
UFW
UFW är standard brandväggsverktyget i Ubuntu. För att tillåta åtkomst från vilken IP-adress som helst på internet (mycket osäker) kör:
sudo ufw allow 3306/tcp
Tillåt åtkomst från en specifik IP-adress:
sudo ufw allow from 10.8.0.5 to any port 3306
FirewallD
FirewallD är standardverktyg för brandväggshantering i CentOS. Så här tillåter du åtkomst från vilken IP-adress som helst på Internet (mycket osäker):
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
För att tillåta åtkomst från en specifik IP-adress i en specifik port kan du antingen skapa en ny FirewallD-zon eller använda en rik regel. Skapa en ny zon med namnet
mysqlzone
:
sudo firewall-cmd --new-zone=mysqlzone --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=mysqlzone --add-source=10.8.0.5/32
sudo firewall-cmd --permanent --zone=mysqlzone --add-port=3306/tcp
sudo firewall-cmd --reload
Verifiera ändringarna
Följ följande kommando för att verifiera att fjärranvändaren kan ansluta till MySQL-servern:
mysql -u user_name -h mysql_server_ip -p
Där
user_name
är namnet på den användare som du beviljade åtkomst till och
mysql_server_ip
är IP-adressen till värden där MySQL-servern körs.
Om allt är korrekt inställt kan du logga in på den fjärranslutna MySQL-servern.
ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.5' (111)"
Felet nedan indikerar att användaren du försöker logga in inte har behörigheter att få åtkomst till den fjärrkontroll MySQL-servern.
"ERROR 1130 (HY000): Host '10.8.0.5' is not allowed to connect to this MySQL server"
Slutsats
MySQL, den mest populära databasservern med öppen källkod, lyssnar som standard på inkommande anslutningar endast på localhost.
För att tillåta fjärranslutningar till en MySQL-server måste du utföra följande steg:
- Konfigurera MySQL-servern för att lyssna på alla eller ett specifikt gränssnitt. Ge åtkomst till fjärranvändaren. Öppna MySQL-porten i din brandvägg.
I augusti köpte jag en Samsung M520-telefon från Sprint. Telefonen fungerade i några veckor, men då slutade det att ta emot någon signal. Jag tog telefonen i Sprint-butiken, som berättade för mig att jag skulle kontakta Samsung för reparationer. Ungefär en månad efter att jag fick den reparerade telefonen slutade den fungera igen. Jag bad Samsung att ersätta telefonen, men de uppgav att de bara skulle reparera det. Efter några månader att gå fram och tillbaka med Samsung har jag fått nog av den
James Kirk, New York, New York
Warner Bros upptog sin Batman Arkham Asylum action-adventure demo för Xbox 360-ägare igår kväll, och jag har just slutat arbeta över Batman Arkham Asylum-demo är ute för Xbox 360-ägare, det handlar om 1,54 GB, jag har dragit ner den och tittat, och vad kan jag säga, "Jag är Batman." Det handlar om allt jag kan säga, men eftersom det är över innan det verkligen har börjat, och vad som finns att se, lägger inte till tillräckligt med uppriktighet. Det är ett par rum i ett galninghus, någr
Först och främst finns det en inledande video som spelar om du lämnar stänkskärmen ensam, en sammanfattande sammanfattning berättad av en medioker Christian Bale imitator (möjligen en komplimang, naturligtvis, om du tror att Christian Bale med laryngit är gud). Spelets titel ger berättelsen upp: Herr Batman går till Looney Town. Du är låst in från get-go, spelets drivkraft som motsvarar en stridslängd byggkrypning där du konfronterar strids- eller logiska utmaningar kastas upp en efter en.
Vi använder alla USB som den avtagbara enheten för att överföra data, eftersom den är bekväm att bära och kan vara lätt att styra plus det ger stor hastighet i dataöverföring. Idag kom jag runt en konstig fråga på min USB-enhet, som jag tycker att jag borde dela med er alla. Jag kopplade min USB till min kollegas bärbara dator för att överföra vissa filer. När jag kopplade USB till min bärbara dator blev filerna och mapparna i USB till genvägar.
Det var galet och jag kunde inte ta bort dessa mappkommandon, eftersom målfilen var







