我有多个mysql数据库,我想在特定数据库上执行一些管理任务。在正在进行的任务中,如何确保没有其他人可以连接到该数据库?
答案 0 :(得分:11)
显然,您可以使用FLUSH命令:
>
FLUSH TABLES WITH READ LOCK;
然后
>
UNLOCK TABLES;
再次解锁数据库。不确定是否需要在表上设置某些设置以允许读锁定。您可以通过在数据库被锁定后尝试手动插入来测试这一点,如果您收到有关被锁定表的错误消息,您就知道它有效。
答案 1 :(得分:0)
我有几个选择,正如我所看到的那样:
关闭mysqld
,即要建立到数据库的连接的守护程序。这有阻止访问所有该计算机上的mysql数据库的缺点。
移动文件或更改文件的访问权限,以便只有您的用户可以使用它。 (我不知道这是否有效。)数据库文件位于/var/lib/mysql
之类的位置。只是不要忘记当你完成将它们改回mysqld
能够使用的东西时!
答案 2 :(得分:0)
如果您可以在维护时停止服务器,请停止守护程序并将其重新配置为不侦听网络连接。仅允许通过本地UNIX套接字进行连接。
然后在物理上或通过SSH在同一台计算机上本地登录。只要没有其他人可以访问机器,这将确保您独自一人。完成后,恢复原始配置文件并重新启动守护程序。
另一种方法是临时禁用所有用户帐户,但是“root”(或用于维护的任何内容)用于特定数据库。然而,这有一个缺点,即实际上弄乱了帐户数据,这比仅仅防止网络连接风险更大。