我有一个MySQL数据库存在于远程服务器上,我只有sql连接privilage,我没有FTP访问服务器,我需要做一个完整的数据库转储,我已经尝试mysqldump,但问题是它是在服务器上创建输出,因为我没有FTP我无法从服务器获得输出,我该如何做一个干净的备份,并获得我的本地机器转储? (当然,备份应该在我的本地机器恢复)如何备份远程服务器上的MySQL数据库
感谢 史蒂芬
我有一个MySQL数据库存在于远程服务器上,我只有sql连接privilage,我没有FTP访问服务器,我需要做一个完整的数据库转储,我已经尝试mysqldump,但问题是它是在服务器上创建输出,因为我没有FTP我无法从服务器获得输出,我该如何做一个干净的备份,并获得我的本地机器转储? (当然,备份应该在我的本地机器恢复)如何备份远程服务器上的MySQL数据库
感谢 史蒂芬
可以作为一个选项,以mysqldump
指定服务器名称:
mysqldump --host servername dbname > dbname.sql
我用过很多次,但总是在想 - 这不是一个可怕的漏洞吗?我的意思是,任何具有主机和db名称的人都可以复制整个数据库而不需要任何密码? –
它像检查其他任何使用'mysql'一样检查权限。 – Barmar
可以使用MySQL的工作台http://www.mysql.com/products/workbench/ ,它可以通过用户友好的界面直接备份到本地文件夹
而且,如果您只有SSH访问服务器,Workbench也可以工作。它在Ubuntu上可用:'sudo apt-get install mysql-workbench'。 –
我使用SQLyog进行此操作,我们可以连接到远程服务器并使用此工具进行备份。
如果服务器承认PHP,则可以上传并尝试Adminer。我喜欢它作为PHPMyAdmin替代品,您可以使用它创建备份!
mysqldump --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
mysqldump.exe
锁默认表,因此其他SQL动作转储期间是不可能的。没有锁定任何表,请使用以下语法来备份完整的远程数据库,并在本地机器上倾倒的一切:
mysqldump -u username -p --single-transaction --quick --lock-tables=false -h ipaddress myDB > backup.sql
变化username
到你自己的用户名,更改ipaddress
到远程的IP地址,并myDB
实际你想要备份的数据库。这会提示你输入密码。一旦提供,转储开始。
我不明白这个问题。 'mysqldump'将转储写入标准输出,当您重定向它时,它会转到本地主机,而不是服务器。 – Barmar
运行mysqldump我需要先登录到服务器,我没有privilage,我有什么只是一个sql连接到Mysql服务器 –
'mysqldump'需要'--host'选项来访问远程服务器,就像'mysql'命令一样。 – Barmar