2、执行赋权限操作,然后刷新权限
mysql >grant all privileges on *.* to root@"%" identified by "Passwd" ;
mysql >flush privileges;
其他文章:
今天想用navicat远程连接虚拟机中的MySQL数据库,一直连不上,在网上搜索了一下,发现原因是MySQL对远程用户登陆的授权问题。这里说一下我的解决方法。(本人小白)
首先,我用navicat去远程链接我虚拟机中的MySQL,链接测试失败。
然后在虚拟机中查看网络端口信息:
#netstat -ntpl
![](https://images2015.cnblogs.com/blog/982624/201610/982624-20161025171100515-36740384.png)
之后查看了防火墙的状态,发现3306端口的数据包都是丢弃状态
#iptables -vnL
![](https://images2015.cnblogs.com/blog/982624/201610/982624-20161025171442328-1603565688.png)
这里要清除防火墙中链中的规则
#iptables -F
在这之后,我又远程链接了一下MySQL,出现了以下错误,查了一下,是因为MySQL没有允许远程登陆,所以要授权MySQL远程登陆。
![](https://images2015.cnblogs.com/blog/982624/201610/982624-20161025172005421-490284238.png)
这里先说一下MySQL登陆:
格式: mysql -h主机地址 -u用户名-p用户密码
1、例1:连接到本机上的MYSQL
找到mysql的安装目录,一般可以直接键入命令mysql -uroot -p,回车后提示你输密码,输入密码,直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>
2、连接到远程主机上的MySQL
假设远程主机的IP为:10.0.0.1,用户名为root,密码为123。则键入以下命令:
mysql -h10.0.0.1 -uroot -p123
(注:p与123(密码)之间最好不加空格,其它也一样)
3、退出MySQL命令
exit (回车)
最后授权MySQL,允许远程用户登录访问MySQL
手动增加可以远程访问数据库的用户。
方法一、本地登入mysql,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改为"%"
#mysql -u root -proot
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
方法二、直接授权(推荐)
从任何主机上使用root用户,密码:youpassword(你的root密码)连接到mysql服务器:
# mysql -u root -proot
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
操作完后切记执行以下命令刷新权限
FLUSH PRIVILEGES
这时再通过navicat远程链接MySQL,链接测试,如下图,成功。
![](https://images2015.cnblogs.com/blog/982624/201610/982624-20161025173614437-307455424.png)
posted on 2018-04-22 22:04
长戟十三千 阅读(1960)
评论(0) 编辑 收藏 引用 所属分类:
编程技巧随笔