phpmyadmin同步

0 phpmyadmin

我在webhotel上有一个远程服务器,我想与我的本地服务器同步.

我的计划是通过主 - 从关系来执行此操作,但是webhost作为虚拟服务器运行,因此问题是,是否可以将我的服务器部分设置为主服务器?(主持人对此并不了解)

我的另一个但不那么棒的想法是在主机或本地服务器上通过phpmyadmin手动同步(它们都运行mysql/phpmyadmin,但我更喜欢我可以从本地同步到主机)

当我尝试从主机或本地同步时,我收到以下错误:

"无法连接到目标/来源"

我该如何解决这个问题?我是DB互连的新手,所以我必须在本地或远程任何地方启用任何东西吗?

小智 6

你似乎有几个问题,

超时

我会从这里开始,因为您可能有权限问题.我建议首先确保您的本地IP地址有权连接到您的远程mySQL数据库,反之亦然,具体取决于您的设置,您可以在phpMyAdmin,托管消费者(如cPanel)或通过shell访问进行配置.我建议使用强密码设置一个单独的用户进行远程访问.如果您没有联系互联网服务提供商并安排一个IP地址,您应该在本地互联网连接上拥有静态IP地址.

在phpMyAdmin中,如果您有足够的访问权限,请通过"用户权限"选项卡并在"登录信息"下设置"主机".出于明显的安全原因,我不建议使用"任何主机"设置.

在cPanel中,在"数据库"下,您应该找到"远程mySQL",您可以在其中设置IP地址.

最后在SSH中,

  1. 用您最喜欢的编辑器(如VI或Nano)打开mySQL配置文件,在Ubuntu上它位于"/etc/mysql/my.conf",
  2. 注释掉"bind-address = 127.0.0.1",看起来像"#bind-address = 127.0.0.1",
  3. 用"/etc/init.d/mysql restart"重新启动mySQL,
  4. 使用"mysql -u root -p"登录mySQL,
  5. 对于新用户,"创建用户'MY_USERNAME'@'localhost'识别'MY_PASSWORD'"
  6. 接下来是"在'MY_DATABASE'上授予所有特权.*到'MY_USERNAME'@'12.34.56.78'由'MY_PASSWORD'识别';" - 注意,用您的实际IP地址替换IP"12.34.56.78".
  7. 您现在应该在查询行确认.
  8. 最后使用"quit"命令退出mysql并使用"/etc/init.d/mysql restart"重新启动

注意:我建议设置两个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'];
}
}
?>
Run Code Online (Sandbox Code Playgroud)

注意:您应该在数据库中有数据以使脚本正常工作,没有数据的结果将显示脚本无法检索数据的消息,如果您现在可以访问数据库,这仍将建立,但不会确保它100%可操作.

主人或奴隶

是的,只要您有足够的访问权限,就有可能

在phpMyAdmin中:

  1. 在"复制"选项卡下,您将找到一个向导,为您提供在mySQL配置文件中设置此代码的代码(在Ubuntu上,它位于"/etc/mysql/my.conf"),
  2. 单击链接以配置主服务器
  3. 在表单中输入信息,复制代码
  4. 转到配置文件(上面的位置)并添加phpMyAdmin提供的代码
  5. 一旦你更新配置文件重新启动mySQL并单击phpMyAdmin中的go按钮,这将确认更改
  6. 现在再次在"复制"选项卡下单击链接以配置从属服务器
  7. 确保您的配置文件中有唯一的server-id,如果没有将phpMyAdmin提供的行添加到文件的[mysqld]部分
  8. 填写所需信息,然后单击"执行"

这应该设置您的复制.

SYNCHRONIZE

如果所有其他方法都失败了,那么在phpMyAdmin中进入"同步"选项卡,输入信息然后离开,你只需要在下一页确认同步,2秒后你就完成了,就这么简单.

对于生产服务器,我个人有一个主/从复制设置但是对于开发我同步当我需要"实时"数据来复制错误或问题时,这是因为我只需要每6-12个月同步一次.如果我需要本地实时数据,那么我将设置主/从复制