MYSQL允许远程连接

首先,MySQL 默认的端口是 3306 ,请确认你的防火墙没有阻止该端口.如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。

然后我们还需要修改mysql的配置文件my.cnf:

1.在旧版本中:
找到skip-networking,在前面加#,注释掉该选项(#skip-networking)

2.在新版本中:
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
找到 :bind-address = 127.0.0.1 这一行要注释掉
#bind-address = 127.0.0.1
或者把允许访问的 ip 填上
#bind-address = 192.168.1.2

—————————————————————–

配置远程连接的账户:

以 root 帐户登陆 MySQL

  • > MySQL -uroot -p

使用root用户登陆,会提示输入密码,Enter password:输入root的密码登陆.

(也可以在-p后面直接接密码,但是注意不要加空格,如 MySQL -uroot -p123456,不过这样密码是明码显示,容易被人看到?)

然后执行

  • > grant all PRIVILEGES on database.* to test@’192.168.1.2′ identified by ‘123456’;

上面的语句表示将名称为database的数据库的所有权限授权给 test 这个用户,

允许test 用户在 192.168.1.2 这个 IP 上进行远程登陆,并设置 test 用户的密码为 123456 。

解释一下参数:

all PRIVILEGES 表示赋予所有的权限给指定用户,也可以替换为某一具体的权限,例如:select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。

database.* 表示上面的权限是针对于哪个表的,database 指的是数据库名称,后面的 * 表示对象是database中所有的表,对于全部数据库的全部表授权为“*.*”,对于某一数据库的全部表授权为“数据库名.*”,对于某一数据库的某一表授 权为“数据库名.表名”。

test 表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。

192.168.1.2 表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。

123456 为用户的密码。

执行了上面的语句后,再执行下面的语句,方可立即生效。

> flush privileges;

注意,如果之前还修改了my.cnf,那么mysql需要重启才能生效!