Connessione da OS X 10.8 a MySQL

1

Ho una rete locale a casa e sto cercando di sviluppare qualche programma. Il programma è multipiattaforma e dovrebbe connettersi a un server MySQL.

Il server è configurato sulla scatola Linux e accetta connessioni remote poiché posso connettermi con successo da macchine Windows con la libreria Connector / C. Il server accetta la connessione sulla porta standard 3306.

Tuttavia, quando provo a connettermi da un laptop Mac (con OS X 10.8) a MySQL, non viene stabilita una connessione. Inizialmente pensavo che questo fosse dovuto al fatto che il mio Mac non mostra il nome host / il nome del computer nel router e quindi la rete è confusa. Ma anche dopo aver applicato ciò che è stato suggerito all'indirizzo questo link , Non riesco ancora a connettermi.

Quindi ora mi chiedo se OS X stia eseguendo una specie di firewall in cui ho bisogno di sbloccare una porta in uscita 3306 in modo che la connessione possa passare. O c'è qualche altra cosa che impedisce la connessione.

La porta è aperta sul router, quindi non ci sono problemi lì.

Quindi c'è qualcosa che posso correggere sul lato Mac o almeno controllare?

Modifica:

Sto cercando di connettermi usando Connector / C dal mio programma compilato con Xcode. Uno stesso codice esatto funziona bene da Windows (cioè la connessione è stabilita). Tutte e 3 le macchine sono sulla stessa rete domestica. Chiamare mysql_error () non produce errori, ma il puntatore MYSQL è NULL dopo aver chiamato mysql_real_connect ().

Modifica 2:

Ecco cosa mostra ifconfig:

MyMac:dbhandler igorkorot$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    options=3<RXCSUM,TXCSUM>
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
    inet 127.0.0.1 netmask 0xff000000 
    inet6 ::1 prefixlen 128 
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether b8:e8:56:21:e0:c0 
    inet6 fe80::bae8:56ff:fe21:e0c0%en0 prefixlen 64 scopeid 0x4 
    inet6 2601:140:4003:860:bae8:56ff:fe21:e0c0 prefixlen 64 autoconf 
    inet6 2601:140:4003:860:65c6:8063:98a:4650 prefixlen 64 autoconf temporary 
    inet6 2601:140:4003:860::1088 prefixlen 64 
    inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
    media: autoselect
    status: active
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
    ether 0a:e8:56:21:e0:c0 
    media: autoselect
    status: inactive

Quindi aprire Network Utility e provare a eseguire la scansione per 3300 - 3310 a 192.168.1.3 non produce nulla. Dice solo questo:

Port Scan has started…

Port Scanning host: 192.168.1.3

Port Scan has completed…

Cercando di scansionare la macchina su cui è presente MySQL, seguo:

Port Scan has started…

Port Scanning host: 192.168.1.2

     Open TCP Port:     3306        mysql
Port Scan has completed…
    
posta Igor 25.06.2017 - 19:30
fonte

1 risposta

1

Il primo passo è garantire che le porte siano aperte e che non ci sia un problema di rete.

Nel Finder, apri / Applicazioni / Utility / Utilità di rete.app

Quindi selezionare "Port Scan". Inserisci l'indirizzo IP (o il nome se DNS è configurato nella tua rete) della Linux Box e scansiona tutte le porte inferiori a 4000.

Un successo dovrebbe assomigliare ai tuoi risultati:

Port Scanning host: 192.168.1.2

     Open TCP Port:     3306        mysql
Port Scan has completed…

Questo dovrebbe essere un rapido controllo del funzionamento della rete e / o del DNS. Quasi certamente non viene bloccato: devi eseguire molte operazioni non predefinite per bloccare porte in uscita arbitrarie.

In caso contrario, avrai bisogno di una domanda successiva con abbastanza dettagli da consentire a qualcuno di aiutarti.

Se la rete funziona, si può essere certi che non è correlato a OS X e forse si concentra su una domanda a livello di codice su Stack Overflow.

    
risposta data 25.06.2017 - 20:56
fonte

Leggi altre domande sui tag