Php 如何将mySQL数据库从本地服务器移动到Heroku?
我用phpMyAdmin创建了一个mySQL数据库。在这个数据库中,我存储了我朋友的姓名和位置(以及作为数据库主键的id)。我编写并运行以下php脚本从数据库中检索这些数据,并将它们投影到本地web服务器(XAMPP)上:Php 如何将mySQL数据库从本地服务器移动到Heroku?,php,mysql,heroku,phpmyadmin,Php,Mysql,Heroku,Phpmyadmin,我用phpMyAdmin创建了一个mySQL数据库。在这个数据库中,我存储了我朋友的姓名和位置(以及作为数据库主键的id)。我编写并运行以下php脚本从数据库中检索这些数据,并将它们投影到本地web服务器(XAMPP)上: 现在我想从我的另一台计算机上访问这个数据库,在那里我需要它们在前端进行一些很酷的数据可视化 一种方法是在另一台计算机上再次构建phpMyAdmin(和XAMPP),并向该数据库添加新用户 我选择的另一种方法是将mySQL数据库从本地服务器移动到Heroku 如何一步一步地
现在我想从我的另一台计算机上访问这个数据库,在那里我需要它们在前端进行一些很酷的数据可视化
一种方法是在另一台计算机上再次构建phpMyAdmin(和XAMPP),并向该数据库添加新用户
我选择的另一种方法是将mySQL数据库从本地服务器移动到Heroku
如何一步一步地(通过使用ClearDB)轻松做到这一点
我是否可以将本地服务器同步到Heroku,以便在本地服务器上更改数据库时,Heroku会自动更新?您有多个选项,具体取决于您对数据库服务器的访问权限等 假设您仍想在heroku上使用mysql,您可以轻松地执行以下操作:
- 使用phpmyadmin导出所需的所有数据库/表,并将它们重新导入heroku数据库。我不熟悉heroku,但我猜他们提供了某种web数据库管理
- 您可以使用从一台服务器到另一台服务器的一次性/永久性mysql复制。关于如何设置,有多个选项(master-master、master->slave等)。以下是有关如何设置主->从复制的快速教程:
有更多的选项,但这是我想到的。另一个选项是使用为迁移数据库而设计的工具。这将允许您在必要时将数据库和内容分发到多个实例,而无需复制不需要的数据。例如,如果您的本地数据库中有不希望复制的测试数据,但确实希望复制表更改,那么这将是一个更好的解决方案。如果您计划将来分发应用程序,这是一个更好的解决方案 我认为一个更常见的解决方案是Phinx这里有一个链接到他们的页面 编辑: 这到底给了你什么?它将使您为对数据库所做的所有更改创建一个迁移文件,例如,如果您添加一个表或更改列名/大小/类型等,您将添加一个新的迁移文件。该文件可以有change或up和down方法,用于将数据库迁移到新版本或回滚。你可以有插入和其他东西,所以如果你想移动数据,你可以使用它。您要做的是创建迁移文件。然后将这些复制到服务器并运行迁移。它将更改数据库模式和数据,以匹配您的数据库模式和数据。是自动的吗?不需要,但它能让您从一个heroku实例迁移到另一个实例,而无需再次设置复制等。您可以设置数据库名称,然后重新运行迁移,它将插入/创建您的数据库。基本上,唯一的缺点是更改不会立即更改heroku实例,您需要上传文件更改和迁移并运行迁移 下面是关于phinx的一个很好的概述 这样做的好处:
- 只要运行一个脚本,就可以在任何地方设置数据库
- 可以对数据库进行版本控制,以便可以前滚或后滚到新版本或旧版本
- 未绑定到特定实例/需求上的数据库
- 无需对复制服务器进行所有设置或维护
<?php
$dbServername = 'localhost';
$dbUsername = 'root';
$dbPassword = '';
$dbName = 'Friends';
$conn = mysqli_connect($dbServername, $dbUsername, $dbPassword, $dbName);
$sql = 'SELECT * FROM friends;';
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck > 0) {
while ($row = mysqli_fetch_assoc($result)) {
echo $row['id'], ' ', $row['name'], ' ', $row['location']. '<br>';
}
}
?>