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…