1、打开mysql.exe(MySQL Command Line Client),输入密码
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的都兰网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
2、输入:use mysql;
3、查询host输入: select user,host from user;
4、创建host(如果有"%"这个host值,则跳过这一步)
如果没有"%"这个host值,就执行下面这两句:
mysql update user set host='%' where user='root';
mysql flush privileges;
5、授权用户
(1)任意主机以用户root和密码pwd连接到mysql服务器
mysql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'pwd' WITH GRANT OPTION;
mysql flush privileges;
(2)指定IP为(如192.168.1.100)的主机以用户tuser和密码tpwd连接到mysql服务器
mysql GRANT ALL PRIVILEGES ON *.* TO 'tuser'@'192.168.1.100' IDENTIFIED BY 'tpwd' WITH GRANT OPTION;
mysql flush privileges;
1、首先检查mysql所在服务器的防火墙,如果限制了外网对3306端口的连接,那么放开限制
Linux服务器中执行
iptables -L 可以查看当前的防火墙规则
iptables -F 可以清空所有防火墙规则
2、确保mysql的监听地址是0.0.0.0
监听地址是0.0.0.0 ,表示该mysql允许所有IP地址进行连接,这是允许远程连接的基础
监听地址是127.0.0.1,则代表该mysql只允许所在服务器本机连接,外网是无法连接的
怎么知道mysql的监听地址是多少
Linux服务器中执行如下命令可以查看: netstat -nutlp|grep mysql
3、添加远程连接mysql的账号
此步骤是必须要操作的,mysql本身的用户只能在本机上连接数据库,外网连接的话,需要先添加远程用户并授权。
在mysql命令行模式下,或者phpmyadmin中执行sql语句添加远程连接用户
grant all on *.* to root@'%' identified by '123456';
flush privileges;
命令解释:
*.* 第一个*表示库,第二个*表示表; *.*对全部数据库的全部表授权,so.ok 表示只对so这个库中的ok表授权
root 表示要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的
'%' 表示允许远程连接的IP地址,%代表允许所有IP连接
只允许某个IP远程连接,可以写成'123.123.123.123'
只允许123.123.123.*这个网段远程连接,可以写成 '123.123.123.%' '123456' 是设置授权用户的连接密码
flush privileges; 代表立即刷新权限表,使添加的用户生效
上面三步都设置好了,就可以再次尝试远程连接mysql了。
有多种方法实现
方法一:要将你装MYSQL的这台电脑的IP暴露在公网上。如果是直接有公网地址那么非常的OK,不需要做任何操作。如果是连在路由器上那么需要在路由器上做映射。做映射还是比较麻烦的,还不是所有设备都可以做映射。
方法二:用异地局域网软件,就是安装一个软件,显示一个虚拟网卡,这个虚拟网卡上有一个固定的 IP,然后另外其他公网上电脑要访问这个MYSQL也需要装这个异地局域网软件。类似这样的软件有 hamachi