2013-04-29 144 views

回答

257

为了连接远程你必须让MySQL绑定端口3306到my.cnf中你机器的IP地址。然后你必须在localhost和'%'通配符中创建用户,并授予所有DB的权限见下图:

的my.cnf(my.ini文件在Windows上)

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

然后

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

然后

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

根据您的操作系统,你可能需要打开端口3306以允许远程连接。

+0

这帮助我使用WebFaction私有MySQL实例。我跟着你的CREATE USER和GRANT ALL的步骤,在我的php.ini中设置'mysql.default_port = <私人实例端口>',然后在整个我的db主机名中使用'127.0.0.1' – spex 2013-09-11 18:41:03

+0

非常有用。只是一个评论。 my.cnf可能会包含另一个配置文件,因此相关的行可能在其他地方。在my.cnf中查找以!include开头的行,如果bind-address不在my.cnf中,它可能位于包含的文件中。 – Joan 2017-02-05 09:20:34

+0

my.cnf文件在哪里? – 2017-10-18 15:24:36

8

为什么DB是用户?看看下面这个例子

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) 

所以回到你质疑“%”的操作装置的所有计算机您的网络。

像aspesa显示我也确定您必须创建或更新用户。寻找你所有的MySQL用户:

SELECT user,password,host FROM user; 

只要你有你的用户设置,你应该能象这样连接:

mysql -h localhost -u gmeier -p 

希望它有助于

+0

一般来说,对于所有db。我只想连接,而不是选择数据库。 'code'mysql_connect('localhost:3306','user','password'); 'code' – user2333586 2013-04-29 20:54:42

+0

你在什么操作系统上,Windows,Linux? – apesa 2013-04-29 21:01:59

+0

窗口。 wamp服务器。 – user2333586 2013-04-29 21:44:32

7

按照指令(步骤1至3在Windows中不需要):

  1. 查找mysql的配置编辑:

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

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

  2. 查找bind-address=127.0.0.1在配置文件中的变化bind-address=0.0.0.0(你可以绑定地址设置为你的界面IPS的一个或像我一样使用0.0.0.0)在控制台上

  3. 重启MySQL服务运行: service restart mysql

  4. 创建一个用户用于远程连接的安全密码。要做到这一点来看下面的MySQL命令(如果您是Linux用户达到mysql的控制台运行mysql如果你根运行mysql -p设置密码):

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

现在你应该有与名称的用户user和密码safe_password与远程连接的能力。

+2

更改bind-address = 0.0.0.0 ...为我工作。并授予权限 – zwitterion 2016-08-11 19:56:52