设置数据库可外网访问
环境:在同一网段内以主机(win10系统)为服务器,用虚拟机(ubuntu下的linux系统)访问主机的数据库
主机ip:192.168.1.16
主机数据库情况:
虚拟机ip:192.168.1.55
虚拟机数据库情况:
(ubuntest是我为了区分win下的数据库和ubuntu的数据库创建的一个测试数据库,里面没有表)
过程:
一、启动主机数据库
不然会出现如下报错
二、设置主机数据库的权限
1. 设置mysql的配置文件,在mysql的安装目录下,my.cnf或my.ini
2. 找到 bind-address =127.0.0.1 将其注释掉;//作用是使得不再只允许本地访问
(我的my.ini里没有这句话,所以不做处理)
3. 重启mysql
4. 执行mysql -u root -p登录mysql数据库
5. 执行mysql> use mysql;
6. 执行mysql> select user,host from user; 查询host值:
7. 如果没有"%"这个host值,就执行下面这两句:
8. mysql> update user sethost='%' where user='root';
mysql> flush privileges;
9. 或者执行:mysql>grant all privileges on *.* to [email protected]'%' identifies by ' xxxx';
(我执行第7条的时候报错,所以忽略8,执行了第9条)
三、通过虚拟机访问
现在主机相当于服务器
在主机数据库给权限之前,连接报如下错误:
成功之后:
注:如果把linux主机当作服务器,完成设置后记得重启服务,否则可能不生效。