我需要在 Linux 服务器上的每晚 mysql 维护期间禁用远程访问,以便在此期间没有人可以查询数据库。我无法执行 SERVICE MYSQL STOP 因为那样我就无法执行我需要执行的操作(截断并重建几个表)。有没有办法暂时关闭外部访问?
提前致谢。
这是一种无需触及操作系统中任何内容的好方法:
步骤 1) 将所有用户导出到 SQL 文件,如下所示:
mysql -h localhost -u root
-p rootpassword --skip-column-names -A -e"SELECT CONCAT('显示 ''',用户,'''@''',主机,''';') FROM
mysql.user WHERE 用户''" | mysql
-hlocalhost -uroot -prootpassword --skip-column-names -A | -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;
步骤 3) 进行维护
步骤 4) 重新加载补助金
mysql -h localhost -u root -p rootpassword < /root/MySQLGrants.sql
尝试一下!!!!
PS
服务 mysql 重新启动 --skip-networking
仍然是最简单、最快的方法,加上在维护之前注销所有连接
只需在维护后运行 service mysql restart
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)