Host is not allowed to connect to this MySQL server

Status
Niet open voor verdere reacties.

tomroelofs

Gebruiker
Lid geworden
30 jan 2011
Berichten
15
Hallo,

Ik ben momenteel bezig om een account systeem in mijn GTA San Andreas server te maken. Hierbij gebruik ik MySQL. Het probleem is dat ik telkens de volgende krijg in mijn mysql log bestand.

Code:
[14:25:24] >> mysql_connect( )
[14:25:24] CMySQLHandler::CMySQLHandler() - constructor called.
[14:25:24] CMySQLHandler::CMySQLHandler() - Connecting to "83.137.194.39" | DB: "MLSamp" | Username: "harrie" ...
[14:25:24] CMySQLHandler::Connect() - Host 'mijniphier.ip.telfort.nl' is not allowed to connect to this MySQL server (Error ID: 1130)
[14:25:24] >> mysql_real_escape_string( Connection handle: 1 )

Dit is wat mijn GTA San Andreas server uitvoert als ik hem opstart.
Code:
    mysql_debug(1);
	SetGameModeText("Blank Script");
    if(!mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS))//Deze gegevens worden gehaal van de defines boven aan mijn script.
    {
        print("SQL connection attempt 1 FAILED!");
        if(!mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS))
        {
            print("SQL connection attempt 2 FAILED!");
            if(!mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS))
            {
                print("SQL connection attempt 3 FAILED!");
                return 1;
            }
        }
    }else{
        print("SQL connection succes!");// Raar is dat hij dit wel print/logt in mijn andere log bestand
		new PlayerName[50], password[50];
        new Query[200];
		format(PlayerName, 50, "Harry");
		format(password, 50, "MijnPassword");

        new escpname[50], escpass[50];
		mysql_real_escape_string(PlayerName, escpass);
        mysql_real_escape_string(password, escpname);
    	format(Query, sizeof(Query), "INSERT INTO `users` (`username`, `password`) VALUES ('%s', '%s')", escpname, escpass);
		mysql_query(Query);
		mysql_free_result();
	}

Ik heb al gezocht op internet voor dit probleem, maar echt wijzer ben ik daar helaas niet van geworden.

Even voor de duidelijkheid: Ik run een server op mijn eigen computer, en gebruik de database van mijn webhost. Als ik WAMP gebruik, werkt hij wel helemaal 100%

Hier is een screenshot van mijn database:
naamloostj.png


Weet iemand misschien hoe ik dit probleem kan oplossen?

Alvast bedankt,
Tom
 
Laatst bewerkt:
Lijkt mij meer een andere kwestie dan Tiborv aangeeft: Je laat in je schermafdruk (helaas) een tabel zien, maar een phpmyadmin schermafdruk van je hele MySql server of phpmyadmin van de relevante database was zinvoller geweest (zie hieronder).

Op de database kunnen rechten gezet worden voor gebruikersnamen maar ook op computers/ip-adressen(!). Dit kan globaal en per database (knop/tabblad Beveiliging in PHPMyAdmin in de hoofdpagina of in de pagina van de relevante database).

Je zult er dus voor moeten zorgen dat je rechten toekent voor het ip-adres van waaruit je de mysql verbinding wilt maken. Dat zal meestal dus het publieke ip-adres van je webserver zijn.

Zie verder (bijv.) deze link en deze link.

Succes,

Tijs.
 
Laatst bewerkt:
Bedankt voor je snelle reactie!

Ik begrijp niet goed wat je bedoeld met de knop/tabblad beveiliging op de homepagina van myphpadmin. Deze zie ik namelijk niet.

Hier is een screenshot ervan:
naamloosho.png


Het gaat zo dat ik in mijn plesk een database kan aanmaken, en niet in myphpadmin zelf. Na het aanmaken van de database, kan ik een "Nieuw Database Gebruiker" kan aanmaken. Bij het aanmaken van zo'n "Nieuw Database Gebruiker", kan ik een username invoeren en een password. Als ik dat aangemaakt heb, kan ik klikken op MyPHPAdmin, en dan krijg ik dus een scherm voor zoals je hierboven ziet. Verder zijn er geen instellingen in mijn plesk.

Ik heb al wat meer mensen gevraagd, voor een antwoord voor dit probleem. De ene zegt dat ik moet vragen aan mijn hoster, dat hij "localhost" bovenaan PHPMyAdmin moet veranderen naar %. De ander zegt dat ik in mijn plesk ergens een IP moet forwarden ofzo.
 
Kan zomaar, ik keek vooral naar de foutmelding (1130). De MySQL servers die ik heb draaien hebben geen connecties naar buiten. Dank voor de aanvulling, heb ik ook weer wat aan.
 
a. Ben je wel ingelogd met een mysql gebruikersnaam & wachtwoord als je phpmyadmin gebruikt? Zie bijlage 1 waarin ik gewoon in het hoofdvenster kan klikken op Rechten.
b. Zoals gezegd kun je zowel globaal als per database rechten zetten. Ik vermoed dat (als je tóch was ingelogd met een Mysql gebruikersnaam & wachtwoord) je van je Mysql-hosting geen globale rechten mag zetten. Dan betekent het dus dat je in het phpmyadmin venster van je database die rechten moet gaan zetten. Zie bijlage 2, waar ik aan gebruiker 'fiets' specifiek op mijn test-database enkele rechten verschaft heb die gelden vanaf elke computer in de wereld die verbindt met de MySql server (zie de '%' in de Machine kolom).

@Tiborv: Wie bedank je in je laatste posting? Mij of de topic-starter?

Succes,

Tijs.
 

Bijlagen

  • mysql_globale_beveiliging.jpg
    mysql_globale_beveiliging.jpg
    85,9 KB · Weergaven: 101
  • mysql_database_specifieke_beveiliging.JPG
    mysql_database_specifieke_beveiliging.JPG
    96,7 KB · Weergaven: 84
Laatst bewerkt:
@Tiborv: De topic-starter had een 2de posting gedaan, vandaar dat het mij niet duidelijk was wie je bedoelde.

Graag gedaan, natuurlijk! :)

Tijs.
 
Mijn host heeft het zo gemaakt, dat ik in mijn plesk een database kan aanmaken, en daarbij een "database user" kan aanmaken. De rechten in MyPHPAdmin zelf heeft mijn host waarschijnlijk uitgezet, aangezien ik de opties als rechten etc, niet kan zien.

Ik kan denk ik het beste vragen of ze het zo willen maken dat ik volledige rechten heb, aangezien ik anders de instructies die jij me geeft niet kan uitvoeren.

Voor zover bedank ik je dnties, en ook Tiborv natuurlijk :)

Mocht ik er nog niet uitkomen dan zal ik het hier wel aangeven :D
 
Laatst bewerkt:
Dus als ik het goed begrijp en je klikt op MLSamp in phpmyadmin (=jouw database), dan krijg je daarna niet een optie Rechten (o.i.d.) gepresenteerd?

Het kán natuurlijk zijn dat je (MySql-)hosting het niet toestaat dat de database extern bereikbaar is en/of dat je eigen gebruikers aanmaakt en/of dat je zelf databaserechten gaat toekennen of aanpassen. Dit natuurlijk alleen als die optie Rechten niet verschijnt als je op de aangemaakte database klikt.

Andere mogelijkheid zou kunnen zijn dat de database-user uit de volgende zin: "Mijn host heeft het zo gemaakt, dat ik in mijn plesk een database kan aanmaken, en daarbij een "database user" kan aanmaken. "
wél die rechten heeft. In dat geval zul je dus in phpmyadmin moeten gaan inloggen als die nieuw aangemaakte "database user".

Natuurlijk kan het geen kwaad even contact te zoeken met de helpdesk van je (MySql-)hosting.

Succes,

Tijs.
 
Ik heb een support reactie gekregen van mijn vraag hierover, van mijn host.

Mijn host gaf het volgende antwoord:

Code:
U mag van buitenaf geen verbinding maken met de mysql server. Alleen scripts welke op onze servers staan, mogen verbinden met de lokale database.

Om de veiligheid van uw databases en onze server te waarborgen, is het niet mogelijk vanuit externe lokaties direct met de MySQL poort verbinding te maken. Dit zorgt namelijk voor een veiligheidsrisico dat wij liever uit de weg gaan.


Nu is het voor mij een stuk duidelijker, waarom dit niet werkte. Ik heb altijd nog een VPS, dus daarmee kan ik ook wel voor MySQL zorgen :)

In iedergeval bedankt voor jullie support!:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan