十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Mysql默认是不可以通过远程机器访问的,通过下面的配置可以开启远程访问
创新互联网站建设公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!专注中小微企业官网定制,网站制作、做网站,塑造企业网络形象打造互联网企业效应。
在MySQL Server端:
执行mysql 命令进入mysql 命令模式,
Sql代码
mysql use mysql;
mysql GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
#这句话的意思 ,允许任何IP地址(上面的 % 就是这个意思)的电脑 用admin帐户 和密码(admin)来访问这个MySQL Server
#必须加类似这样的帐户,才可以远程登陆。 root帐户是无法远程登陆的,只可以本地登陆
mysql use mysql;
mysql GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
#这句话的意思 ,允许任何IP地址(上面的 % 就是这个意思)的电脑 用admin帐户 和密码(admin)来访问这个MySQL Server
#必须加类似这样的帐户,才可以远程登陆。 root帐户是无法远程登陆的,只可以本地登陆
授权里面增加用户,特别注意,用户名和主机名一对才确定一个唯一的授权用户,如果需要让192.168.0.1机器以root用户链接数据库,应该有'192.168.0.1'和'root'的记录,如果希望任意主机都可以用root用户链接数据库,那么主机可以填写%。
1. 允许外网访问MySQL,首先得让MySQL服务器有一个能和外网直接连接的公网的IP,就是不能是10.x.x.x , 172.16.x.y--172.31.x.y, 192.168.x.y的IP地址,
2. 然后在MySQL上执行如下语句:
grant all peivilegess on *.* to root@'%' identified by '密码';
flush privileges;
3. 打开防火墙,或配置防火墙允许3306端口通过
一般情况下,MySQL数据库服务器不允许外界直接访问,如果要访问的话,可以安装一个web页面的东西(比如phpmyadmin),通过访问页面的形式来访问数据库服务器。
设置mysql服务允许外网访问,修改mysql的配置文件,有的是my.ini,有的是my.cnf【linux】.
1:设置mysql的配置文件
/etc/mysql/my.cnf
找到 bind-address =127.0.0.1 将其注释掉;//作用是使得不再只允许本地访问;
重启mysql:/etc/init.d/mysql restart;
2:登录mysql数据库:mysql -u root -p
mysql use mysql;
查询host值:
mysql select user,host from user;
如果没有"%"这个host值,就执行下面这两句:
mysql update user set host='%' where user='root';
mysql flush privileges;
或者也可以执行:
mysqlgrand all privileges on *.* to root@'%' identifies by ' xxxx';
其中 第一个*表示数据库名;第二个*表示该数据库的表名;如果像上面那样 *.*的话表示所有到数据库下到所有表都允许访问;
‘%':表示允许访问到mysql的ip地址;当然你也可以配置为具体到ip名称;%表示所有ip均可以访问;
后面到‘xxxx'为root 用户的password;
举例:
任意主机以用户root和密码mypwd连接到mysql服务器
mysql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql flush privileges;
IP为192.168.1.102的主机以用户myuser和密码mypwd连接到mysql服务器
mysql GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.102' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql flush privileges;