phpmyadmin同步

时间:2011-02-25 09:03:24

标签: phpmyadmin

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

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

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

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

  

“无法连接到目标/来源”

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

1 个答案:

答案 0 :(得分:6)

你似乎有几个问题,

TIME OUT

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

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

在cPanel中,在“数据库”下,您应找到“远程mySQL”,您可以在其中设置IP地址。

最后在SSH中,

  1. 使用您喜欢的编辑器(如VI或Nano)在Ubuntu上打开mySQL配置文件,它位于“/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”,
  5. 登录mySQL
  6. 对于新用户,“创建用户'MY_USERNAME'@'localhost'识别'MY_PASSWORD'”
  7. 接着是“在'MY_DATABASE'上授予所有特权。*'到'MY_USERNAME'@'12.34.56.78'由'MY_PASSWORD'识别';” - 注意,用您的实际IP地址替换IP“12.34.56.78”。
  8. 您现在应该按照查询行确认。
  9. 最后使用“quit”命令退出mysql并使用“/etc/init.d/mysql restart”重新启动
  10. 注意:我建议设置两个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中:

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

      <强>同步

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

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