我有一个项目需要转移到生产(第一次)。该数据库包括几十个表和程序/功能。它们都是在ROOT用户下创建的(是的,我知道的不好的做法)。
现在,我需要将整个过程转移到生产中,显然不是在MySQL ROOT用户之下。
我想要做以下事情,但在参与之前我会很感激专家意见:
mysqldump -u root -p -R MySB > dump.sql
,root
的所有实例替换为correct_user
(其中 correct_user 将是拥有所有表和例程的MySQL用户),mysqldump -u correct_user -p -R MySB < dump.sql
从转储文件恢复。任何人都可以告诉我,我的计划是否正确,或者是否有更好(更正式)的方式来做这件事?
非常感谢。
答案 0 :(得分:0)
MySQL中的表格没有所有者。您不必担心创建它们的用户。
程序,功能,触发器,事件和视图都有所谓的&#34; definer &#34;。用户是执行代码的用户。这个应该从 root 更改。确保新用户具有足够的权限。他只需要在例行程序中运行代码的权限,而不是更多。
所以你的步骤是正确的。但最终加载(4)应该以 root 或具有超级权限的用户完成。