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

11 浏览
0 Comments

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

我想使用命令行复制一个名为db1的mysql数据库。在这样做的过程中,我想获取db1中的所有表和字段,但不包括其值。\n我在这个主题上看到了很多SO问答。例如,Copy/duplicate database without using mysqldump。\n不幸的是,我无法完成此链接中建议的两步过程:\n

    \n

  1. 创建数据库
  2. \n

  3. 从db1转储到db2
  4. \n

\n下面是我从bash终端开始的代码:\n

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'

\n值得注意的是,只要我不输入sudo i成为root,我可以创建db2。不幸的是,如果我不成为root,我无法找出如何远程访问我的db2,这是我最终需要做的。也就是说,我不知道如何从我的网站应用程序mysite.com访问db2

0
0 Comments

原因:问题的出现是因为用户没有足够的权限执行相应的操作。

解决方法:需要以root用户身份登录MySQL控制台,并给用户'timpeterson'@'%'授予对数据库'db2'的所有权限。具体操作如下:

1. 以root用户登录MySQL控制台。

2. 执行以下命令:GRANT ALL PRIVILEGES ON db2.* TO 'timpeterson'@'%';

这条命令将授予用户'timpeterson'@'%'对'db2'数据库的所有权限。

3. 再次尝试复制数据库操作,看是否成功。

如果在执行以上步骤时出现错误,可能是因为当前用户并非真正的root用户。可以通过执行以下命令来验证用户身份:SELECT user();

如果还有其他问题,可以在评论中提出,并在两小时后再次查看回复。

0
0 Comments

在使用命令行复制MySQL数据库时,可能会遇到以下问题:

问题原因:使用没有创建数据库权限的登录账号。

解决方法:使用具有创建数据库权限的登录账号,并按照以下步骤操作:

1. 从mysql管理员账号(通常是root或mysqladm[in])执行以下命令:

CREATE DATABASE db2;
-- 根据应用程序需要,确定需要授予的特定权限
GRANT ALL PRIVILEGES ON db2.* TO 'timpeterson'@'%' IDENTIFIED BY 'timspassword';
FLUSH PRIVILEGES;

2. 在命令行中执行以下命令:

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

需要注意的是,FLUSH PRIVILEGES这一步可能会有一些问题,在某些安装环境中,权限不会自动重新加载,因此可能会出现授权了超级权限但用户仍无法执行任何操作的情况。

如果在执行`GRANT ALL PRIVILEGES ON db2.* TO 'timpeterson'@'%' IDENTIFIED BY 'timspassword';`命令后仍然出现`ERROR 1044 (42000): Access denied for user 'timpeterson'@'%' to database 'db2'`错误,可能需要按照以下步骤进行操作:

1. 以root身份创建db2,并在GRANT后执行FLUSH PRIVILEGES。

2. 退出MySQL客户端,以root用户重新登录,并为timpeterson添加更多权限。

这样应该能解决问题。

如果密码是`timspassword`,在执行第二条命令时,应该输入`--password`(或简写为`-p`),然后会提示输入密码。也可以输入`--password=timspassword`,但这样做不是一个好主意,因为密码会留在shell历史记录中。

在输入`-p`时遇到的问题是,会提示输入密码两次,但实际上只能输入一次,因为提示信息被连接在一起。因此,当只输入密码一次时会出现`mysqldump: Got error: 1045: Access denied for user 'timpeterson'@'localhost' (using password: YES) when trying to connect`错误。

0