远程连接 mySql数据库会提示10061、1045错误或 2003-Can’t connect to MySQL on ’192.168.1.2’(10061),这个原因是因为MySQL不准许远程连接。
最简单的办法是,通过root用户进入mysql,添加下面命令:
grant all on *.* to 用户名@"%" identified by"密码";
flushprivileges;
命令格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
权限:select/insert/update/delete/all,多个权限之间用英文逗号隔开。
数据库:数据库名称,或者使用“*”代替所有数据库。
登录主机:localhost/具体IP/%,其中“%”代表除localhost之外的所有IP。
mysql默认是打开3306端口给外部的。如果是本地连接,不指明 mysql --protocol=tcp, 连接默认是socket方式连接的,socket连接是根据sokect文件来的,与--port不相关的,所以本地连接不需要确定端口。如果是异地服务器登陆的话就需要确认下端口的是否正确了。
如果还是无法连接上,还需检验以下方式:
1:在服务端MySQL文件夹下找到my.ini文件。修改bind-address=127.0.0.1 为 bind-address=0.0.0.0 (在MySQL 5的my.ini中未发现此项);
2:重新启动MySQL服务;
如果以新的身份无法登录进去,可以查看下:
1、数据库是否添加了该用户,select * from mysql.user ;
2、有没有忘了 flush privileges,因为添加完权限可能没有写到内存去,所以你必须加上这个命令或者重启mysql,service mysql restart;
3、看下服务器的防火墙有没设置好,看下端口是否被限制;