暂时禁用mysql远程访问

Xi *_*Vix 3 mysql linux

我需要在Linux服务器上进行夜间mysql维护时禁用远程访问,以便在此期间没有人可以查询数据库.我不能做SERVICE MYSQL STOP因为那时我不能做我需要做的事情(截断并重建几个表).有没有办法在短时间内关闭外部访问?
提前致谢.

Rol*_*DBA 9

这是一个很好的方式,没有触及操作系统中的任何内容

步骤1)将所有用户导出到SQL文件,如下所示:

mysql -h localhost -u root -p rootpassword --skip-column-names -A -e"SELECT CONCAT('SHOW GRANTS FOR''',user,''''''',host,''''' )FROM mysql.user WHERE user <>''"| mysql -hlocalhost -uroot -prootpassword --skip-column-names -A | sed's/$ /;/g'> /root/MySQLGrants.sql

步骤2)禁用除root @ localhost之外的所有用户

DELETE FROM mysql.user WHERE CONCAT(user,host) <> 'rootlocalhost';
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

步骤3)执行维护

步骤4)重新加载赠款

mysql -h localhost -u root -p rootpassword < /root/MySQLGrants.sql
Run Code Online (Sandbox Code Playgroud)

试一试!!!!

PS

service mysql restart --skip-networking

仍然是最简单,最快捷的方式,还可以在维护之前注销所有连接

只需在维护后运行service mysql restart