Home  >  Article  >  Backend Development  >  How to implement master-slave replication of MySQL database in PHP

How to implement master-slave replication of MySQL database in PHP

PHPz
PHPzOriginal
2023-05-17 08:18:051342browse

With the rapid development of the Internet, Web applications are increasingly integrating database operations. MySQL is a world-renowned relational database system that is widely used. In highly concurrent web applications, MySQL master-slave replication is an important way to improve database performance and availability. This article will introduce how to use PHP to implement master-slave replication of MySQL database.

1. What is MySQL master-slave replication

MySQL master-slave replication refers to copying the data of one MySQL database server to another server so that the data of the two MySQL servers remain consistent. One of the servers is called the master server and is responsible for updating data in real time; the other server is called the slave server and is responsible for synchronizing data from the master server. Master-slave replication can improve the scalability and fault tolerance of the system. For example, when the main server goes down, the slave server can take over the work of the main server to ensure the normal operation of the business.

2. The implementation principle of master-slave replication

The implementation principle of master-slave replication is as follows:

  1. The master server records the update operation in the binary log (Binary Log ).
  2. The slave server connects to the master server, requests to obtain the binary log that needs to be synchronized, and copies it to its own log.
  3. The slave server executes the update operations in the binary log of the master server into its own database to ensure that the data in the two databases are consistent.

3. How to implement master-slave replication in PHP

  1. Configure the binary log of the main server

The main server needs to be configured in my.cnf Enable binary logging in the file. Open the my.cnf file and add the following configuration in the [mysqld] section:

server-id=1
log-bin=/var/log/mysql/mysql-bin.log

Among them, server-id is used to identify the main server, and log-bin is used to specify the path of the log file.

  1. Configure the master server information of the slave server

The slave server needs to add the connection information of the master server in the my.cnf configuration file. Open the my.cnf file and add the following configuration in the [inisd_client] section:

server-id=2
master-host=10.0.0.1
master-user=repl_user
master-password=repl_password
master-port=3306

Among them, server-id is used to identify the slave server, master-host specifies the IP address of the master server, master-user and master -password specifies the user name and password of the master server, and master-port specifies the port number of the master server.

  1. Create replication user

Create a user on the main server for replicating data, and authorize the user to read the binary log. Open the MySQL client and execute the following command:

mysql> CREATE USER 'repl_user'@'%' IDENTIFIED BY 'repl_password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
  1. Start the replication process in the slave server

Execute the following command in the MySQL client of the slave server to start the replication process :

mysql> CHANGE MASTER TO MASTER_HOST='10.0.0.1', 
  MASTER_USER='repl_user', MASTER_PASSWORD='repl_password', 
  MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107;
mysql> START SLAVE;

Among them, MASTER_LOG_FILE and MASTER_LOG_POS can be found in the Binary Log of the main server.

After completing the above steps, the slave server will copy the data from the master server to keep the data in the two databases consistent.

4. Summary

MySQL master-slave replication is an important technology to improve system performance and availability. It is very simple to implement MySQL master-slave replication using PHP. You only need to enable the binary log on the master server, configure the master server information on the slave server, create a replication user, and start the replication process. In actual production environments, attention should be paid to using appropriate technical means to assist database operation and maintenance to ensure the stability and security of database services.

The above is the detailed content of How to implement master-slave replication of MySQL database in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn