gpt4 book ai didi

mysql - 使用命令行复制一个mysql数据库

转载 作者:搜寻专家 更新时间:2023-10-30 20:11:22 26 4
gpt4 key购买 nike

我想使用命令行复制一个名为 db1 的 mysql 数据库。这样做时,我想从 db1 中获取所有表和字段,但不是它的值。

我看过很多关于这个主题的 SO 问答。例如,Copy/duplicate database without using mysqldump .不幸的是,我无法完成此链接中建议的两步过程:

  1. 创建数据库
  2. 从 db1 到 db2 的 mysqldump

这是我从 bash 终端开始的代码:

ubuntu@ip-xx-xxx-xxx-xx:~$ sudo -i
root@ip-xx-xxx-xxx-xx:~# mysql -h mysite.com -u timpeterson -p
Enter password:
mysql> create database `db2`;
ERROR 1044 (42000): Access denied for user 'timpeterson'@'%' to database 'db2'

似乎值得注意的是,只要我不通过键入 sudo i 成为 root,我就可以创建 db2。不幸的是,如果我没有成为 root,我就不知道如何远程访问我的 db2,而这正是我最终需要做的。也就是说,我不知道如何从我的 Web 应用程序 mysite.com 访问 db2

最佳答案

当然,您需要使用具有创建数据库权限的登录名。

从 mysql 管理员帐户(通常是 root 或 mysqladm[in]),

CREATE DATABASE db2;
-- instead of ALL PRIVILEGES, see what privileges you really need for the application
GRANT ALL PRIVILEGES ON db2.* TO 'timpeterson'@'%' IDENTIFIED BY 'timspassword';
FLUSH PRIVILEGES;

然后从命令行

mysqldump --opt --no-data db1 --user=USERWITHACCESSTODB1 --password | mysql db2 --user=timpeterson --password

FLUSH PRIVILEGES 特别棘手——在某些安装中,权限不会自动重新加载,因此您可能会发现自己将 Clark Kent 的超能力授予用户,而该用户仍然无法执行此操作任何东西。

关于mysql - 使用命令行复制一个mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11420601/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com