开启mysql远程连接

  遇到这个问题多次,希望可以简单的解决。于是写个比较易懂的说明。

  使用MYSQL 5。

  MYSQL默认是只允许本地连接的,即通过localhost(或一般127.0.0.1)。如果想要远程连接数据库,可以对MYSQL中mysql库user表中的用户做修改,是主机可以是远程主机。如下:

  mysql>use mysql;

  mysql>update `user` set host='%' where user='root';         /* 这里%表示通配,任何主机可访问,而且是使用root用户 */

  mysql>flush privileges;  /* 使权限立即生效,需要足够权限来执行这条语句,一般是root */

  如果只想让一定IP地址段访问,把 '%' 改为 '192.168.1.%',表示192.168.1.0/24子网内的主机可访问。

  当然经常把原来的host值(默认是'localhost')改成其他(如上'192.168.1.%')后,本地就无法登录MYSQL,因为localhost不属于此网段,所以只能以此网段的IP作为自己主机地址的时候可以访问MYSQL。

  顺便说下在做以上操作完成后,被修改的用户在本机登录遇到1045 access denied错误的解决方案:

  1. 修改my.ini,在[mysqld] 后加上一句 skip_grant_tables 后保存。(禁止本地登录MYSQL所有访问限制)

  2. 重启mysql服务,可以登录了然后修改host字段值(如果是密码不记得,此时可以password=password('mypassword')),如果想要Localhost又像限制远程访问IP,不妨再新建一个root2用户拥有root所有权限,修改root2的host,最后把root2名字改成root即可。

  3. 改回my.ini,再重启MYSQL服务。

原文地址:https://www.cnblogs.com/iwish/p/3450348.html