2013-04-29 18 views

risposta

257

Per collegare da remoto è necessario avere la porta di collegamento MySQL 3306 sull'indirizzo IP della propria macchina in my.cnf. Quindi è necessario aver creato l'utente sia in localhost che in "%" jolly e concedere le autorizzazioni su tutti i DB come tali . Vedi sotto:

my.cnf (my.ini sulle finestre)

#Replace xxx with your IP Address 
bind-address  = xxx.xxx.xxx.xxx 

poi

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass'; 
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass'; 

Poi

GRANT ALL ON *.* TO 'myuser'@'localhost'; 
GRANT ALL ON *.* TO 'myuser'@'%'; 

seconda del sistema operativo potrebbe essere necessario aprire porta 3306 per consentire le connessioni remote.

+0

Questo mi ha aiutato ad usare un'istanza MySQL privata di WebFaction. Ho seguito i passaggi CREATE USER e GRANT ALL, ho impostato 'mysql.default_port = ' nel mio php.ini, quindi ho usato '127.0.0.1' dappertutto per il mio nome host db – spex

+0

Molto utile. Solo un commento my.cnf potrebbe includere un altro file di configurazione in modo che la riga relativa possa essere altrove. In my.cnf cerca una riga che inizi con! Include, se bind-address non è in my.cnf potrebbe trovarsi in quel file incluso. – Joan

+0

Dov'è il file my.cnf? –

8

per quale DB è l'utente? guarda questo esempio

mysql> create database databasename; 
Query OK, 1 row affected (0.00 sec) 
mysql> grant all on databasename.* to [email protected] identified by 'password'; 
Query OK, 0 rows affected (0.00 sec) 
mysql> flush privileges; 
Query OK, 0 rows affected (0.00 sec) 

quindi per tornare alla domanda l'operatore "%" indica tutti i computer nella rete.

come aspesa mostra Sono anche sicuro che devi creare o aggiornare un utente. cercare tutti gli utenti di MySQL:

SELECT user,password,host FROM user; 

non appena avete ottenuto il vostro utente imposta si dovrebbe essere in grado di collegare in questo modo:

mysql -h localhost -u gmeier -p 

Speranza che aiuta

+0

generalmente, per tutti db. Voglio solo collegarmi, non selezionare DB. 'code'mysql_connect ('localhost: 3306', 'user', 'password'); 'codice' – user2333586

+0

su quale sistema operativo ci si trova, Windows, Linux ?? – apesa

+0

windows. server wamp. – user2333586

7

Seguire le istruzioni (punti da 1 a 3 non fanno necessario in Windows):

  1. Trova mysql config da modificare:

    /etc/mysql/my.cnf (Mysql 5.5)

    /etc/mysql/conf.d/mysql.cnf (MySQL 5.6+)

  2. Ricerca bind-address=127.0.0.1 nel cambiamento file di configurazione bind-address=0.0.0.0 (è possibile impostare l'indirizzo si legano a una delle tue ips interfaccia o come me utilizzare 0.0.0.0)

  3. Restart mysql run servizio su console: service restart mysql

  4. creare un utente con un password sicura per la connessione remota.Per fare questo percorso seguente comando in MySQL (se siete utenti Linux per raggiungere mysql console corsa mysql e se si imposta una password per root run mysql -p):

    GRANT ALL PRIVILEGES 
    ON *.* TO 'remote'@'%' 
    IDENTIFIED BY 'safe_password' 
    WITH GRANT OPTION;` 
    

Ora si dovrebbe avere un utente con nome user e password safe_password con capacità di connessione remota.

+2

cambia bind-address = 0.0.0.0 ... che ha funzionato per me. e concedere i privilegi – zwitterion

Problemi correlati