前几天看见有人问数据库怎么远程访问,当时想不是很简单么,以前就用Navicat连接过服务器数据库,一连就连上了。然后自己试了试。。。不行。什么情况??!!!报的错误是100061,网上一搜,是权限问题。
网上改权限有几个方法,我看了看,其实也就是一个方法,就是给user表添加个能远程访问数据库的用户。
创建用户如下:
CREATE USER '用户名'@'IP' IDENTIFIED BY '密码';
本地的话IP一般为localhost,把IP设为具体IP则表示仅对该IP有效,改为%则为对所有IP有效。
对用户赋予权限:
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'abc'@'%';
上面为对用户abc赋予查找,插入,更改,删除操作权限。
如果想让用户有所有权限,则为
GRANT ALL PRIVILEGES ON *.* TO 'abc'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
然后要使权限生效:
FLUSH PRIVILEGES;
一般这样就可以了。但是会有其他原因可能导致访问不了。
首先可能是mysql配置文件没有更改。
打开mysql配置文件。my.ini。修改bind-address=127.0.0.1 为 bind-address=0.0.0.0。重新启动mysql。
其次,服务器防火墙,这个忘记了。。。自行搜索。
那天把以上步骤都做好了后,还是不行,整个人都不好了。都后突然想到服务器平台那里好像只开了22端口,去看了看,再添加上mysql使用的端口,就可以了。(坑了我好久。。。)