我在webhotel上有一个远程服务器,我想与本地服务器同步。
我的计划是通过主从关系执行此操作,但是webhost作为虚拟服务器运行,因此问题是,是否可以将服务器的部分设置为主服务器? (主持人对此并不了解)
我的另一个但不那么棒的想法是在主机或本地服务器上通过phpmyadmin手动同步(它们都运行mysql / phpmyadmin,但我更喜欢我可以从本地同步到主机)
当我尝试从主机或本地同步时,我收到以下错误:
“无法连接到目标/来源”
我如何解决这个问题?我是DB互连的新手,所以我必须在本地或远程任何地方启用任何东西吗?
答案 0 :(得分:6)
你似乎有几个问题,
TIME OUT
我会从这里开始,因为您可能有权限问题。我建议首先确保您的本地IP地址有权连接到您的远程mySQL数据库,反之亦然,具体取决于您的设置,您可以在phpMyAdmin,托管消费者(如cPanel)或通过shell访问进行配置。我建议使用强密码设置一个单独的用户进行远程访问。 如果您没有联系互联网服务提供商并安排一个IP地址,您应该在本地互联网连接上拥有静态IP地址。
在phpMyAdmin中,如果您有足够的访问权限,可通过“用户权限”选项卡并在“登录信息”下设置“主机”。出于明显的安全原因,我不建议使用“任何主机”设置。
在cPanel中,在“数据库”下,您应找到“远程mySQL”,您可以在其中设置IP地址。
最后在SSH中,
注意:我建议设置两个mySQL安装以进行远程访问。
我现在建议您在本地计算机上运行一个小脚本来测试,例如
<?php
$host = 'mysql_remoteip';
$user = 'mysql_username';
$pass = 'mysql_password';
$db = 'mysql_database';
$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());
mysql_select_db($db) or die("OOPS! I can not connect to the remote mySQL database, I was given the following error: ".mysql_error());
$sql = "SELECT column FROM table WHERE column='my_var'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
if(empty($row['column']) {
echo "WHOOPS! I could not get information from the mySQL, was there data for me to retrieve in the database?";
} else {
echo "The data I retrieved is:<br />"
echo $row['column'];
}
}
?>
注意:您应该在数据库中包含数据以使脚本正常工作,没有数据的结果将显示脚本无法检索数据的消息,如果您现在可以访问数据库或不是但不能确保它100%可操作。
MASTER OR SLAVE
是的,只要您有足够的访问权限,就有可能
在phpMyAdmin中:
这应该设置您的复制。
<强>同步强>
如果所有其他方法都失败了,那么在phpMyAdmin中转到“同步”选项卡,输入信息然后离开,你只需要在下一页确认同步,2秒后你就完成了,这就是简单。
对于生产服务器,我个人有一个主/从复制设置但是对于开发我同步当我需要“实时”数据来复制错误或问题时,这是因为我只需要每6-12个月同步一次。如果我需要本地实时数据,那么我将设置主/从复制