How to synchronize Mysql data_PHP tutorial
How to synchronize Mysql data
Suppose there are hosts A and B (Linux system). The IP of host A is 1.2.3.4 (of course, it can also be dynamic), and the IP of host B is 5.6.7.8. Both hosts are equipped with PHP+Mysql, and they are currently operating the data on host A. If another host B wants to synchronize the data with A, what should it do?
OK, let’s do it now.
First of all, if you want to synchronize data between two hosts, one method is for host A to send data to host B. Another method is for host B to get data from host A, because A’s IP It is dynamic (assumed), so we have to send data from host A to host B.
Create a Mysql account on host B.
# GRANT ALL ON test.* TO user@% IDENTIFIED BY "password"; //Create user user, who can access the test database on host B from any machine.
If an error is displayed here, first change % to an IP, and then use phpMyAdmin to change the IP to %. After the test is correct, you can write the php program.
$link=mysql_pconnect("localhost","user","password");
mysql_pconnect("localhost","user","password"); // Connect to the database of this machine (Host A)
mysql_select_db("test"); //Select database test
$re=mysql_query("select * from table order by id desc");
$num=mysql_numrows($re);
if (!empty($num)) {
$id=mysql_result($re,0,"id"); //Get the maximum ID of the local table
}
mysql_close($link); //Close the connection to the local database
$link=mysql_pconnect("5.6.7.8","test"," test");
mysql_pconnect("5.6.7.8","test","test"); //Connect to the database of host B
mysql_select_db("test"); //Select database test, this database should The structure of the test database on host A is the same.
$re=mysql_query("select * from table order by id desc");
$num=mysql_numrows($re);
if (!empty($num)) {
$remote_id =mysql_result($re,0,"id"); //Get the maximum ID of the host Btable table
}
if ($id>$remote_id) {
$result_id=$id- $remote_id; //If the maximum ID of the table in host A is greater than the maximum ID of the table in host B, it means that the data of the two
} are different
mysql_close($link); //Close host B Database connection
$link=mysql_pconnect("localhost","user","password");
mysql_pconnect("localhost","user","password");
mysql_select_db("test");
if (empty($result_id)) $result_id=0;
if (empty($remote_id)) $remote_id=0; //If the The maximum ID of the table is empty (there is no data in it), then wait for 0
$re=mysql_query("select * from table limit $remote_id,$result_id"); //Get the table table in host A and Different data in the table in host B
$num=mysql_numrows($re);
if (!empty($num)) {
for ($i=0;$i<$num; $i++) {
$test[$i]=mysql_result($re,$i,"test"); //Put different data into an array
}
}
mysql_close ($link); //Close the database connection of host A
$link=mysql_pconnect("5.6.7.8","user","password");
mysql_pconnect("5.6. 7.8","user","pasword");
mysql_select_db("test");
for ($j=0;$j<$i;$j++) { //i here Equivalent to comparing the number of different data in the table table on host A and host B
mysql_query("insert into table (test) values('$test[$j]')");
}
mysql_close($link); //Close the database connection of host B
?>
At this time, the data synchronization of host A and host B is initially achieved , but now people still need to manually activate this program every time. Is there any way to use it as a script and put it in crontab to automatically execute it at a specified time?
When installing php, an executable file called php will be automatically generated. It is usually under the /bin directory of php you installed. However, the lower version does not seem to have it. If there is no such file, you have to upgrade. your php.
#php -q test.php
php was originally used in web applications, so it will send HTML Header, but here we are going to use php as Shell Script﹐" -q" means not to send the Header.
Finally edit the file in /etc/crontab and add the following sentence.
0 0 * * * root /home/httpd/html/test //Execute the /home/httpd/html/test file at 0:00 every night (please check the cron related information for specific usage methods)
OK, the synchronization of Mysql data is almost completed here. If you are still interested, you can think of a better way to synchronize editing and deletion.

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

DeepSeek is a powerful intelligent search and analysis tool that provides two access methods: web version and official website. The web version is convenient and efficient, and can be used without installation; the official website provides comprehensive product information, download resources and support services. Whether individuals or corporate users, they can easily obtain and analyze massive data through DeepSeek to improve work efficiency, assist decision-making and promote innovation.

One of the major changes introduced in MySQL 8.4 (the latest LTS release as of 2024) is that the "MySQL Native Password" plugin is no longer enabled by default. Further, MySQL 9.0 removes this plugin completely. This change affects PHP and other app

There are many ways to install DeepSeek, including: compile from source (for experienced developers) using precompiled packages (for Windows users) using Docker containers (for most convenient, no need to worry about compatibility) No matter which method you choose, Please read the official documents carefully and prepare them fully to avoid unnecessary trouble.

BITGet is a cryptocurrency exchange that provides a variety of trading services including spot trading, contract trading and derivatives. Founded in 2018, the exchange is headquartered in Singapore and is committed to providing users with a safe and reliable trading platform. BITGet offers a variety of trading pairs, including BTC/USDT, ETH/USDT and XRP/USDT. Additionally, the exchange has a reputation for security and liquidity and offers a variety of features such as premium order types, leveraged trading and 24/7 customer support.

Ouyi OKX, the world's leading digital asset exchange, has now launched an official installation package to provide a safe and convenient trading experience. The OKX installation package of Ouyi does not need to be accessed through a browser. It can directly install independent applications on the device, creating a stable and efficient trading platform for users. The installation process is simple and easy to understand. Users only need to download the latest version of the installation package and follow the prompts to complete the installation step by step.

Gate.io is a popular cryptocurrency exchange that users can use by downloading its installation package and installing it on their devices. The steps to obtain the installation package are as follows: Visit the official website of Gate.io, click "Download", select the corresponding operating system (Windows, Mac or Linux), and download the installation package to your computer. It is recommended to temporarily disable antivirus software or firewall during installation to ensure smooth installation. After completion, the user needs to create a Gate.io account to start using it.

Ouyi, also known as OKX, is a world-leading cryptocurrency trading platform. The article provides a download portal for Ouyi's official installation package, which facilitates users to install Ouyi client on different devices. This installation package supports Windows, Mac, Android and iOS systems. Users can choose the corresponding version to download according to their device type. After the installation is completed, users can register or log in to the Ouyi account, start trading cryptocurrencies and enjoy other services provided by the platform.

The cryptocurrency market continues to develop, bringing investors a growing investment opportunity. The listing of new coins has always attracted much attention, and February 2025 is the month when new coins are crowded, providing investors with a wide range of choices. Cryptocurrencies to watch in February 2025: Potential projects that cannot be missed This article will focus on five cryptocurrency projects that will be launched in February, and whether you are an experienced investor or a newbie, you can find the projects you are interested in. They are DogeLife ($DOGEL), DistriBrain ($BRAIN), Bitcoin USD ($BTD), PiINU ($PINU) and PIMEME ($PIMEME). Please be prepared and put these days
