如何开启MySQL远程访问权限允许远程连接?
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、授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。 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身份登录啦。
MySQl如何权限及远程连接?
这个实现起来不难,总的来说就是两步:先授权,再进行远程连接。为了方便演示,我这里以某云为例,远程连接云服务器下面的mariadb数据库(mysql数据库的一个分支),本地环境为win7+mysql5.5,主要步骤介绍如下:
1.远程登录云服务器(这里是centos7),启动mariadb服务,我的数据库已经安装,这里的命令比较简单—"systemctl start mariadb.servoice",如图:
2.接着就连接数据库,进行授权,为了方便演示,我这里假设给Jack这个用户只在数据库paper上只授予查询select的权限,允许他在任何地点IP以密码"Jack123"来登陆,那么命令就是"grant select on paper.* to 'Jack'@'%' identified by 'Jack123'",如下:
3.打开本地cmd窗口,进行远程连接,命令是"mysql -h *** -u Jack -p Jack123",如下图所示,已成功连接远程数据库:
4.这里就可以进行正常的测试了,因为我们这里只给Jack赋予了paper数据库查询的权利,所以他只能select查询,除此之外,任何的增删改都不能操作,这里以paper数据库下面的users表为例,测试如下:
至此,一个完整的mysql远程授权和连接就已完毕,整个过程来说,没有什么难度—就是先授权,然后远程登录,和操作本地数据库类似,只要你对mysql授权命令grant有一定的了解,有一定的mysql基础,会基本的mysql命令,多熟悉熟悉流程,多练习练习,很快就能掌握的,网上也有许多这方面的教程,你可以参考参考,学习一下,至于后面如何取消授权,就是revoke命令,我这里就不再赘述了,希望以上分享的内容能对你有所帮助吧。