我有一个存在于远程服务器上的MySQL数据库。我只有sql连接权限,没有FTP访问服务器的权限,需要完整备份数据库。我尝试使用
我该如何进行干净的备份并在本地机器上获取备份(当然,备份应该可以在我的本地机器上恢复)?
mysqldump
,但问题是它在服务器上创建输出,由于我没有FTP,无法从服务器获取输出。我该如何进行干净的备份并在本地机器上获取备份(当然,备份应该可以在我的本地机器上恢复)?
mysqldump
,但问题是它在服务器上创建输出,由于我没有FTP,无法从服务器获取输出。你可以将服务器名称作为选项传递给 mysqldump
:
mysqldump --host servername dbname > dbname.sql
mysql
的方式一样检查权限。 - Barmarmysqldump --host hostaddress -P portnumber -u username -ppassword dbname > dbname.sql
通常 MySQL 的远程端口是3306。以下是一个例子:
mysqldump --host 192.168.1.15 -P 3306 -u dev -pmjQ9Y mydb > mydb.sql
您可以使用MySQL Workbench http://www.mysql.com/products/workbench/,它可通过用户友好的界面直接备份到本地文件夹。
sudo apt-get install mysql-workbench
。 - Rael Gugelmin Cunhamysqldump.exe
会锁定表格,因此在转储期间无法进行其他 SQL 操作。为了不锁定任何表格,使用以下语法备份完整的远程数据库并将所有内容转储到本地计算机上:mysqldump -u username -p --single-transaction --quick --lock-tables=false -h ipaddress myDB > backup.sql
username
更改为您自己的用户名,将ipaddress
更改为远程IP地址,并将myDB
更改为您要备份的实际数据库。这将提示您输入密码。提供密码后,转储将开始。我使用SQLyog来连接远程服务器并使用该工具进行备份。
mysqldump
将转储写入标准输出,当您重定向它时,它会进入本地主机而不是服务器。 - Barmarmysqldump
命令可以使用--host
选项来访问远程服务器,就像mysql
命令一样。 - Barmar