怎么让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

首先你要先和服务器的网络是能Ping通的

MYSQL连接一般需要输入目标服务器的IP地址,端口号,用户名和密码。

如:ip地址:19216811101

端口 :3306

用户名:root

密码:root

其中用户名和密码一般输入root都是可以进入的。不行就去目标服务器上的数据库管理下用户。

MYSQL一般都是用NAVITE for mysql。点击左上角的连接按钮。输入以上信息就可以了,记得先PING网络。

ip、端口、用户名、密码这些信息应该是云服务器的提供商给你的。或者你自己在云服务器上安装配置mysql,上传数据库或者脚本。那么和在本地配置是一样的原理。有问题可以联系tjyundingyun,很高兴为您解答

这个非常简单,MySQL数据库的用户信息、数据库信息和登录IP信息通常都保存在系统数据库中,可以直接经过查询得到,下面我简单介绍一下,以MySQL55为例:

用户信息

这个主要保存在mysql数据库的user表中,通常修改用户的密码、删除用户及分配权限等就是在这个表进行,下面我简单介绍一下:

查询所有用户

这个直接执行“selectuser,hostfromuser;”语句就行,如下,第一列为用户名,第二列为允许登录的IP,%表示任意IP都可登录,localhost则只允许本地登录:

查询用户权限

这个直接执行“showgrantsfor'user'@'host';”命令就行,如下,以root用户为例,则直接执行“showgrantsfor'root'@'localhost';”命令,all表示所有权限,select表示只查权限,update表示只改权限,delete表示只删权限等:

数据库信息

这个主要保存在information_schema数据库中,它通常保存着MySQL数据库所维护的所有数据库信息,包括数据库名,数据表名,表栏的数据类型与访问权限等,下面我简单介绍一下:

查询所有数据库

这个直接执行“showdatabases;”命令就行,如下,会列出当前MySQL数据库中存储的所有数据库,查看某一个数据库下所有数据表的话,执行“showtables;”命令就行:

查看数据库大小

以test数据库为例,计算单位为MB,直接执行“selectconcat(round(sum(data_length)/(10241024),2)+round(sum(index_length)/(10241024),2),'MB')as'DBSize'fromtableswheretable_schema='test';”命令就行,如下:

查看数据库编码

这个直接执行“showvariableslike'character%';”命令就行,如下,character_set_client为客户端编码,character_set_connection为建立连接编码,character_set_database为数据库编码,character_set_results为结果集编码,character_set_server为数据库服务器编码;

登录IP信息

这里通常是查看连接MySQL数据库的IP信息,统计每个IP的连接数,执行“selectSUBSTRING_INDEX(host,':',1)asip,count()frominformation_schemaprocesslistgroupbyip”命令就行,如下,第一列为IP地址,第二列为该IP下的连接数:

至此,我们就完成了查询MySQL数据库的用户信息、数据库信息和登录IP信息。总的来说,整个过程非常简单,只要你有一定的MySQL基础,熟悉一下相关文档和说明,很快就能掌握的,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

首先MySQL只允许本地连接登录,如果要远程登录需要修改数据库中user表 中的host内容改成%或指定ip。%是任意的IP都可以远程连接上的。完成这个修改就可以远程连接上了,不过值得注意的是:需要给服务器数据库登录名root账号设置一个密码,不然无法远程连接。如果还不能连接上,可看一下防火墙是否允许了3306商品访问

先看看我改成%,让所有的ip可以连接到,如图下:

/opt/lampp/bin/mysql -uroot -p 进入数据库操作,这里是使用了root登录数据库,root没有密码可直接mysql可以进去

看到user表中host已经被修改成了,可以通过sql语句修改host的内容。这样就可以远程连接上了

UPDATE user SET host='%' WHERE user='root';

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

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情