怎么让mysql允许远程连接的方法

怎么让mysql允许远程连接的方法,第1张

mysql默认状态是只支持localhost连接,这样远程服务器都输入IP地址去连接你的服务器是不可以的,下面我来介绍怎么让mysql允许远程连接配置方法,有需要的朋友可参考。

方法一,直接利用在“权限”-》管理中修改用户选择或输入IP地址。

方法二,使用mysql的GRANT命令进行操作

例如:让newuser用户使用newpwd密码从IP:19216813主机链接到mysql服务器

具体步骤:

代码如下

mysql>GRANT ALL PRIVILEGES ON TO ‘newuser’@’19216813′ IDENTIFIED BY ‘newpwd’ WITH GRANT OPTION;

mysql>flush privileges;

完整配置方法

假设我们有:

代码如下

Web-Server : 1921681100 //ubuntu

Mysql-Server : 1921681101 //xp

我们可以按照下面的步骤修改:

1, 登录 Mysql-Server 连接本地 mysql (默认只允许本地连接)

代码如下

Microsoft Windows XP [版本 512600]

(C) 版权所有 1985-2001 Microsoft Corp

C:Documents and Settingskuco>mysql -h localhost -u root -p

Enter pass:

Welcome to the MySQL monitor Commands end with ; or g

Your MySQL connection id is 13

Server version: 5145-community-log MySQL Community Server (GPL)

Type 'help;' or 'h' for help Type 'c' to clear the current input statement

mysql>

2, 修改 Mysql-Server 用户配置

代码如下

mysql> USE mysql; -- 切换到 mysql DB

Database changed

mysql> SELECT User, Password, Host FROM user; -- 查看现有用户,密码及允许连接的主机

+------+----------+-----------+

| User | Password | Host |

+------+----------+-----------+

| root | | localhost |

+------+----------+-----------+

1 row in set (000 sec)

mysql> -- 只有一个默认的 root 用户, 密码为空, 只允许 localhost 连接

mysql> -- 下面我们另外添加一个新的 root 用户, 密码为空, 只允许 1921681100 连接

mysql> GRANT ALL PRIVILEGES ON TO 'root'@'1921681100' IDENTIFIED BY '' WITH GRANT OPTION;

mysql> -- 当然我们也可以直接用 UPDATE 更新 root 用户 Host, 但不推荐, SQL如下:

mysql> -- UPDATE user SET Host='1921681100' WHERE User='root' AND Host='localhost' LIMIT 1;

grant 权限名(所有的权限用all) on 库名(全部)表名(全部) to ’要授权的用户名‘@’%'(%表示所有的IP,可以只些一个IP) identified by “密码”;

身份检查使用user表(Host, User和Password)3个范围列执行。服务器只有在user表记录的Host和User列匹配客户端主机名和用户名并且提供了正确的密码时才接受连接。

在user表Host值的指定方法:

Host值可以是主机名或IP号,或’localhost’指出本地主机。

你可以在Host列值使用通配符字符“%”和“_”。

Host值’%'匹配任何主机名,空Host值等价于’%'。它们的含义与LIKE操作符的模式匹配操作相同。例如,’%'的Host值与所有主机名匹配,而’%mysqlcom’匹配mysqlcom域

的所有主机。

3, 修改 Mysql 配置文件 myini

代码如下

bind-address = 127001

将 bind-address = 127001 这一行注释掉, 即修改为:

代码如下

#bind-address = 127001

到此 Mysql-Server 端配置就完成了

4, 连接 Web-Server , 检查一下是否能连上

代码如下

kuco@kuco-desktop:/$ /opt/lampp/bin/mysql -h 1921681101 -u root -p

Enter password:

Welcome to the MySQL monitor Commands end with ; or g

Your MySQL connection id is 23

Server version: 5145-community-log MySQL Community Server (GPL)

Type 'help;' or 'h' for help Type 'c' to clear the current input statement

mysql> -- 一切OK

默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/myconf文件。

一、修改/etc/mysql/myconf

找到bind-address = 127001这一行

改为bind-address = 0000即可

二、为需要远程登录的用户赋予权限

1、新建用户远程连接mysql数据库

grant all on to admin@'%' identified by '123456' with grant option;

flush privileges;

允许任何ip地址(%表示允许任何ip地址)的电脑用admin帐户和密码(123456)来访问这个mysql server。

注意admin账户不一定要存在。

2、支持root用户允许远程连接mysql数据库

grant all privileges on to 'root'@'%' identified by '123456' with grant option;

flush privileges;

三、查看系统用户

开启 MySQL 的远程登陆帐号有两大步:

1、确定服务器上的防火墙没有阻止 3306 端口。

MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 3306 端口连接到 MySQL 的。

如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。

如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员咨询。

2、增加允许远程连接 MySQL 用户并授权。

1)首先以 root 帐户登陆 MySQL

在 Windows 主机中点击开始菜单,运行,输入“cmd”,进入控制台,MySQL 的 bin 目录下,然后输入下面的命令。

在 Linux 主机中在命令提示行下输入下面的命令。

> MySQL -uroot -p123456

123456 为 root 用户的密码。

2)创建远程登陆用户并授权

> grant all PRIVILEGES on discuz to ted@'123123123123' identified by '123456';

上面的语句表示将 discuz 数据库的所有权限授权给 ted 这个用户,允许 ted 用户在 123123123123 这个 IP 进行远程登陆,并设置 ted 用户的密码为 123456 。

下面逐一分析所有的参数:

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

discuz 表示上面的权限是针对于哪个表的,discuz 指的是数据库,后面的

表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“”,对于某一数据库的全部表授权为“数据库名”,对于某一数据库的某一表授

权为“数据库名表名”。

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

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

123456 为用户的密码。

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

> flush privileges;

远程登录mysql一些常用的代码段,大家可参考一下。

一、允许root用户在任何地方进行远程登录,并具有所有库任何操作权限,具体操作如下:

在本机先使用root用户登录mysql:

mysql -u root -p"youpassword"

进行授权操作:

mysql>GRANT ALL PRIVILEGES ON TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;

重载授权表:

FLUSH PRIVILEGES;

退出mysql数据库:

exit

二、允许root用户在一个特定的IP进行远程登录,并具有所有库任何操作权限,具体操作如下:

在本机先使用root用户登录mysql:

mysql -u root -p"youpassword"

进行授权操作:

GRANT ALL PRIVILEGES ON TO root@"1721616152" IDENTIFIED BY "youpassword" WITH GRANT OPTION;

重载授权表:

FLUSH PRIVILEGES;

退出mysql数据库:

exit

三、允许root用户在一个特定的IP进行远程登录,并具有所有库特定操作权限,具体操作如下:

在本机先使用root用户登录mysql:

mysql -u root -p"youpassword"

进行授权操作:

GRANT select,insert,update,delete ON TO root@"1721616152" IDENTIFIED BY "youpassword";

重载授权表:

FLUSH PRIVILEGES;

退出mysql数据库:

exit

四、删除用户授权,需要使用REVOKE命令,具体命令格式为:

REVOKE privileges ON 数据库[表名] FROM user-name;

具体实例,先在本机登录mysql:

mysql -u root -p"youpassword"

进行授权操作:

GRANT select,insert,update,delete ON TEST-DB TO test-user@"1721616152" IDENTIFIED BY "youpassword";

再进行删除授权操作:

REVOKE all on TEST-DB from test-user;

注:该操作只是清除了用户对于TEST-DB的相关授权权限,但是这个“test-user”这个用户还是存在。

最后从用户表内清除用户:

DELETE FROM user WHERE user="test-user";

重载授权表:

FLUSH PRIVILEGES;

退出mysql数据库:

exit

配置mysql允许远程连接的方法

默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/myconf文件。

一、修改/etc/mysql/myconf

找到bind-address = 127001这一行

改为bind-address = 0000即可

二、为需要远程登录的用户赋予权限

1、新建用户远程连接mysql数据库

grant all on  to admin@'%' identified by '123456' with grant option; 

flush privileges;

允许任何ip地址(%表示允许任何ip地址)的电脑用admin帐户和密码(123456)来访问这个mysql server。

注意admin账户不一定要存在。

2、支持root用户允许远程连接mysql数据库

grant all privileges on  to 'root'@'%' identified by '123456' with grant option;

flush privileges;

笔者在一个实际的项目中需要MYSQL远程访问

情景: 安装好Mysql, 本地访问正常,很奇怪局域的机器都无法访问该服务器上的MYSQL数据库

经过资料查找

原来Mysql默认是不可以通过远程机器访问的,通过下面的配置可以开启远程访问

在MySQL Server端:

登陆MYSQL bin\ mysql -h localhost -u root -p

提示你输入密码,输入密码后进入

mysql 命令模式,

mysql> use mysql;

mysql> GRANT ALL ON TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;

#这句话的意思 ,允许任何IP地址(上面的 % 就是这个意思)的电脑 用admin帐户 和密码(admin)来访问这个MySQL Server

#必须加类似这样的帐户,才可以远程登陆。 root帐户是无法远程登陆的,只可以本地登陆

在服务器上,使用IP地址和新的用户,确实可以访问服务器,但是远程机器还是无法访问到该MYSQL

经过关闭服务器上防火墙,噢, MYSQL是可以访问拉但是从安全角度出发,是不允许关闭防火墙的

解决方法:

1,控制面板 打开防火墙,在进入规则中新建一个规则

2 选择端口,然后下一步

3选择TCP 端口,填 80,3306 端口号 按下一步

4 选择允许所有连接

5 下一步全选

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 怎么让mysql允许远程连接的方法

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情