怎么让mysql允许远程连接的方法
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';
0条评论