当使用360网站安全在线工具(http://webscan.360.cn)对网站扫描时:
网站数据库泄露风险 共检测290项 正在检测... Mysql可远程连接
可以在mysql自带的系统数据库‘mysql’里查找一个叫做user的表。user表里就有一个字段叫做localhost。如果这里还有别的字段,并且 user 为 remote 或者 一个用户名为% 就说明还有用户在用远程连接。把这样的用户删掉,只保留LOCALHOST就好了。
操作过程:
1. 登录 Mysql-Server 连接本地 mysql
mysql -h localhost -u root -p Enter password: mysql>
2、修改 Mysql-Server 用户配置
mysql> USE mysql; Database changed mysql> SELECT User, Password, Host FROM user; +------+----------+-----------+ | User | Password | Host | +------+----------+-----------+ | root | | localhost | | root | | % | +------+----------+-----------+ 2 row in set (0.00 sec)
3、删除第二条记录
mysql>Delete FROM user Where Host="%";
4、验证删除是否成功
mysql> SELECT User, Password, Host FROM user; +------+----------+-----------+ | User | Password | Host | +------+----------+-----------+ | root | | localhost | +------+----------+-----------+ 1 row in set (0.00 sec)
只剩下一条记录表示删除成功。
如果需要开启mysql远程连接:
首先登录:
mysql -u root -h localhost -p use mysql #打开mysql数据库 #将host设置为%表示任何ip都能连接mysql,当然您也可以将host指定为某个ip update user set host='%' where user='root' and host='localhost'; flush privileges; #刷新权限表,使配置生效
然后我们就能远程连接我们的mysql了。
3、如果您想关闭远程连接,恢复mysql的默认设置(只能本地连接),您可以通过以下步骤操作:
mysql -u root -h localhost -p use mysql #打开mysql数据库 #将host设置为localhost表示只能本地连接mysql update user set host='localhost' where user='root'; flush privileges; #刷新权限表,使配置生效
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
参考
一. 改表法
不允许帐号从远程登陆,只能在localhost。登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,将”localhost”改成”%”。
mysql -u root -pvmwaremysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user;
二. 授权法
比如想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
如果你想允许用户myuser从ip为192.168.0.6的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.0.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
如果你想允许用户myuser从ip为192.168.0.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.0.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
三. 进入MySQL服务器
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //赋予任何主机访问数据的权限 mysql>FLUSH PRIVILEGES //修改生效 mysql>EXIT //退出MySQL服务器
下面就可以在其它任何的主机上以root身份登录MySQL了。
当mysql禁止远程连接时数据库远程管理的解决方法:
备份MYSQL数据库经常会遇到数据库版本问题,数据库内容编码格式问题,数据库远程连接被限制问题,诸多问题,所以数据库备份起来也特别麻烦。
由于PHP和MYSQL经常在一台服务器上面,为了安全经常是禁止远程访问数据库的,这样备份数据库通常得传备份工具到网站空间上面连接。这样麻烦还要受数据库版本编码格式影响,而Navicat的HTTP通道连接解决了这一难题。
Navicat使用HTTP通道连接备份数据库方法:首先打开Navicat点新建连接,然后在常规选项卡里面依次输入:连接名,主机名,商品,用户名,密码。然后点HTTP选项卡,勾选使用HTTP通道,接下来把Navicat根目录下面的ntunnel_mysql.php文件复制到要备份的网站根目录。通道地址就写:网址/ntunnel_mysql.php,点连接测试,确定即可。