mysql怎么开启远程登录功能标签:xxx,host,user,mysql,权限,root,远程,localhost From: https://blog.51cto.com/yetaotao/5800708
进入cmd命令模式。
mysql-hlocalhost-umysql-p
Enterpassword:******
连接数据库。
mysql>usemysql;(此DB存放MySQL的各种配置信息)
Databasechanged
mysql>selecthost,userfromuser;(查看用户的权限情况)
+-------------+-------+
|host|user|
+-------------+-------+
|localhost||
|localhost|root|
|localhost||
|localhost|mysql|
+-------------+-------+
6rowsinset(0.02sec)
由此可以看出,只能以localhost的主机方式访问。
mysql>Grantallprivilegeson*.*to'root'@'%'identifiedby‘password’withgrantoption;
(%表示是所有的外部机器,如果指定某一台机,就将%改为相应的机器名;‘root’则是指要使用的用户名,里面的password需要自己修改成root的密码)
mysql>flushprivileges;(运行为句才生效,或者重启MySQL)
QueryOK,0rowsaffected(0.03sec)
mysql>selecthost,userfromuser;(再次查看用户的权限情况)
+-------------+-------+
|host|user|
+-------------+-------+
|%|mysql|
|%|root|
|localhost||
|localhost|root|
|localhost||
|localhost|mysql|
+-------------+-------+
mysql>exit
现在再试试:从远程cmd那边看能不能登录,能登录的话,一般用代码也是可以连接的到的。
本回答由网友推荐
怎么设置mysql服务器要设置远程ip访问权限
你的MYSQL数据库里面有一个数据库,名字教做mysql,里面有个表,名字叫做user,你看一下这个表的结构和现有数据,你就知道应该怎么做了,比如你可以添加一条数据,Host为你指定的IP,user可以是%,password就不管了,后面设置相应的权限(可以全部都是Y),这样那个机器无论用什么用户和密码都可以连接数据库,而拥有你指定的权限。
耐心点吧,我相信你一看就明白。
参考资料:
本回答由提问者推荐
MySQL数据库怎么实现远程连接访问
或者新加条记录,“host” 项为要访问的ip地址,并授权。重启mysql服务。
第二:在系统防火墙添加例外端口:3306,并允许例外。
错误提示:
ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server
的解决方法:
1。改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
1.mysql -u root -pvmware
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
3.在window自带的防火墙里的例外添加3306端口
mysql -u root -p
mysql>use mysql;
mysql>select 'host' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host'from user where user='root';
第一句是以权限用户root登录
第二句:选择mysql库
第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
第五句:刷新MySQL的系统权限相关表
第六句:再重新查看user表时,有修改。。首先看报错窗口。
经查阅,错误原因是:本地ip(xxx.xxx.xxx.xxx)没有访问远程数据库的权限。
于是下面开启本地ip(xxx.xxx.xxx.xxx)对远程mysql数据库的访问权限。
首先远程连接进入服务器,在cms中输入mysql -u root -p,然后回车,输入密码后回车进入mysql命令行。
输入use mysql;
输入select user,password,host from user;
可以看到host中只有localhost主机。我们需要将xxx.xxx.xxx.xxx也添加到这里才对。
添加方法如下:
grant all privileges on *.* to root@"xxx.xxx.xxx.xxx" identified by "密码";
这相当于是给ip-xxx.xxx.xxx.xxx赋予了所有的权限,包括远程访问权限。
然后再输入
flush privileges;
这相当于是重新加载一下mysql权限,这一步必须有。
再次输入select user,password,host from user;
可以看到host中已经有了新加的ip。
现在再次用navicat for mysql访问远程mysql数据库,已经能正常打开了。
问题解决。
不过还有一个问题,发现双击打开某张表的时候很慢,至少要3秒。
当远程访问mysql时, mysql会解析域名, 所以会导致访问速度很慢, 会有2,3秒延时!
解决办法:
修改mysql安装目录下的my.ini,加上下面这个配置可解决此问题。在[mysqld]下加入:skip-name-resolve
保存退出后重启mysql服务。
然后访问速度就和本地一样快啦。
如何开启MySQL远程访问权限 允许远程连接
新安装的MySQL是默认不开户远程访问权限的,也就不能外部连接MySQL。这样对想远程调用MySQL的数据很不方便。下面我们来看下如何设置允许远程连接MySQL数据库。
登录MySQL
# mysql -uroot -p
如果无法登录可以使用find / -name mysql搜索mysql程序的路径,比如mysql程序路径为:/usr/local/mysql/bin/mysql,我们可以这样登录:
# /usr/local/mysql/bin/mysql -uroot -p
执行如下命令:
# grant all privileges on *.* to ‘root’@’192.168.0.1′ identified by ‘ROOT-PASSWORD’;
# flush privileges;
# exit
192.168.0.1是连接mysql服务器的客户端ip,如果指定所有,则用%来表示。本文提供了三种解决方法: 1、改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" mysql -u root -pvmwaremysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user; 2、授权法。 grant all privileges on *.* to 'myuser'@'%'identified by 'mypassword' wi th grant option; 如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码 grant all privileges on *.* to 'myuser'@'192.168.1.3'identified by 'mypassword' with grant option; 我用的第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句 mysql>flush rivileges 使修改生效,就可以了 另外一种方法: 在安装mysql的机器上运行: 1、d:\mysql\bin\>mysql -h localhost -u root //这样应该可以进入mysql服务器 2、mysql>grant all privileges on *.* to 'root'@'%'with grant option //赋予任何主机访问数据的权限 3、mysql>flush privileges //修改生效 4、mysql>exit //退出mysql服务器 这样就可以在其它任何的主机上以root身份登录啦。