Database
Mysql Tutorial
Detailed example of MYSQL dual-master full database synchronous replicationDetailed example of MYSQL dual-master full database synchronous replication
Environment:
The two servers A and B are installed with the mysql-5.7.18 server respectively and configured to synchronize each other's master and slave.
The linux system version is CentOS7
A server ip: 192.168.1.7 Host name: test1
B server ip: 192.168.1.8 Host name: test2
(Under the same LAN)
1. Preparation
1. Modify the host name
Command: hostnamectl set-hostname xxx
(View host name command :hostname)
2. Turn off the firewall
1) Check the firewall status
Command: firewall-cmd --state
Result: running
2) The firewall is running. First, shut down the firewall service. ## 4) Check the firewall status
Command: firewall-cmd --state
Result: not running
3. Turn off selinux policy
1) Check selinux running status
Command: getenforce
Result: Enforcing
2) Permanently shut down (need to restart the computer), edit selinux File vi /etc/sysconfig/selinux modify SELINUX=disabled
3) To the closed state
2. Configuration Master server (master) slave server (slave) 
log-bin=mysql-bin log-bin-index=mysql-bin
[In the B server my.cnf file mysqld], add the content in the above picture, and only change the server-id value. server-id=2 log-bin=mysql-bin log-bin-index=mysql-bin2. Create the full library backup file all.sql in the mysql installation path in server A (the rpm installation path is /var/lib/mysql). Create command:
touch /var/lib/mysql/all.sql
Backup command: [root@test1 mysql]# mysqldump -uroot -p123 --all-databases > /var/lib/mysql/all.sql
Copy the all.sql file to a path in server B (use the /var/lib/mysql path (for example) to restore.
Restore command:
[root@test2 /]# mysql -uroot -p123 < /var/lib/mysql/all.sql
3. Create users in mysql of servers A and B for synchronization.
Create user:
mysql> create user 'tongbu'@'%' identified by 'tongbu';
Authorization:
mysql> grant all on *.* to 'tongbu'@'%';
Delete user:
mysql> drop user '用户名'@'%';
After the A and B server users are created, test whether the users can remotely access each other Log in to mysql.
[root@test1 /]# mysql -utongbu -ptongbu -h192.168.1.8 [root@test2 /]# mysql -utongbu -ptongbu -h192.168.1.7
Restart the mysql service in servers A and B after testing without problems: [root@test /]# service mysqld restart
4. Set A as the master server and B as the slave server.
1) View the binary log name and offset value in server A mysql
Command: mysql> show master status\G
As shown below
## 2) Configure the connection server in server B
mysql> stop slave; mysql> change master to -> master_host='192.168.1.7', -> master_user='tongbu', -> master_password='tongbu', -> master_log_file='mysql-bin.000024', -> master_log_pos=154; mysql> start slave;
mysql> show slave status\G Enter this command to check whether the values of Slave_IO_Running and Slave_SQL_Running are Yes, as shown below
5. Set B as the master server and A as the slave server.
1) View the binary log name and offset in server B mysql
Command: mysql> show master status\G

2 ) Configure the connection server in server A.
mysql> stop slave; mysql> change master to -> master_host='192.168.1.8', -> master_user='tongbu', -> master_password='tongbu', -> master_log_file='mysql-bin.000027', -> master_log_pos=154; mysql> start slave; mysql> show slave status\G 查看Slave_IO_Running和Slave_SQL_Running的值是否为Yes
At this point, the master-slave synchronization configuration of the two mysql databases is completed.
Error troubleshooting:
主键冲突、表已存在等错误代码如1062,1032,1060等,可以在mysql配置文件指定略过此类异常并继续下条sql同步,这样可以避免很多主从同步的异常中断。打开/etc/ mysql下的my.cnf文件,在[mysqld]后添加如下代码:
slave-skip-errors = 1062,1032,1060
3. 跳过异常恢复同步
mysql >slave stop; mysql >SET GLOBAL sql_slave_skip_counter = 1; mysql >slave start;
The above is the detailed content of Detailed example of MYSQL dual-master full database synchronous replication. For more information, please follow other related articles on the PHP Chinese website!
Securing MySQL Default Installations and ConfigurationsJul 24, 2025 am 02:06 AMModifying the default root password, deleting anonymous users, banning remote root login, removing test databases, and restricting access ports are key steps in MySQL security hardening. First, use the ALTERUSER command to set a strong password and avoid using the root account to connect to the application; secondly, delete anonymous users'@'localhost' and ''@'your_hostname' through DROPUSER; then check and delete the 'root'@'%' account that allows remote login, or create a restricted dedicated account instead; then delete unnecessary test databases and other irrelevant data; finally restrict port 3306 access through firewall tools, or set bind-addres in the configuration file
Understanding MySQL Indexes for WHERE, ORDER BY, GROUP BYJul 24, 2025 am 02:05 AMMySQL indexes are not as fast as possible, and they need to be used reasonably according to the query scenario. 1. The WHERE condition medium value query (=) has the best effect. The range query must comply with the principle of leftmost prefix. Fuzzy match LIKE'abc%' can be indexed, LIKE'�c' is not available, and functions or expressions are avoided in the condition. 2. ORDERBY needs to use indexes to avoid file sorting. It requires that the sorting columns have indexes and the WHERE and ORDERBY columns are in the same order to form a joint index, but range query may cause the sorting to be invalid. 3. GROUPBY recommends using an existing index structure, which prioritizes indexes covering equivalent conditions. Discontinuous columns or inappropriate order will add additional overhead. In addition, the EXPLAIN tool should be paid attention to the implementation plan
Troubleshooting MySQL Replication Sync IssuesJul 24, 2025 am 02:03 AMCommon solutions to the MySQL master-slave synchronization problem are as follows: 1. Check whether the master-slave connection is normal, check the error information of the Last_IO_Error and Last_SQL_Error fields to ensure that the main library port is open and the slave library account has REPLICATIONSLAVE permission; 2. Check whether there are SQL execution errors, if the table does not exist or the field type does not match, skip the error and continue synchronization if necessary; 3. Fix data inconsistency, resynchronize full amount through mysqldump or PerconaXtraBackup, or use pt-table-checksum to detect and repair differences; 4. Optimize configuration and adjust sync_binlog and slave_parall
Choosing the Right MySQL Storage Engine: InnoDB vs MyISAM RevisitedJul 24, 2025 am 02:02 AMInnoDB is suitable for scenarios where transactions, foreign keys, and row-level locks are required. 2. MyISAM is suitable for scenarios where more reads, less writes, and 3. Modern MySQL recommends using InnoDB by default. InnoDB supports transaction processing, crash recovery, foreign key constraints and row-level locking, and is suitable for scenarios with high data consistency requirements such as financial transactions and order processing, with good concurrency performance and high reliability; MyISAM is simple in design and fast query speed, suitable for scenarios where reading operations are mainly based on log statistics and report analysis, but write operations will lock the entire table, affecting concurrency performance; Since MySQL5.5, InnoDB has become the default engine, and continues to obtain new functions and is more applicable. Unless there are special needs, it is recommended to choose InnoDB to avoid late migration costs.
Troubleshooting MySQL Replication User PrivilegesJul 24, 2025 am 01:58 AMMySQL master-slave replication issues are usually caused by improper configuration of replication user rights. 1. Make sure that the replica user has REPLICATIONSLAVE permissions, which can be checked through SHOWGRANTS and added with the GRANT command; 2. Avoid over-authorization and only grant necessary permissions such as REPLICATIONSLAVE and REPLICATIONCLIENT; 3. Check whether the permissions are effective, confirm that there are no spelling errors, FLUSHPRIVILEGES has been executed, the database modification is correct, and MySQL restart is restarted; 4. If the error "Accessdeniedforuser" is reported, the user name and password host should be confirmed, the user existence, firewall and port connectivity should be confirmed.
Optimizing MySQL for Social Media PlatformsJul 24, 2025 am 01:56 AMTooptimizeMySQLforsocialmediaplatforms,startwithindexingstrategies,schemadesign,queryoptimization,andconnectionhandling.1)Usecompositeandcoveringindexeswiselytospeedupquerieswithoutslowingdownwrites.2)Normalizecoredataforconsistencyanddenormalizesele
Optimizing MySQL for Gaming Leaderboards and Player StatsJul 24, 2025 am 01:44 AMTooptimizeMySQLforgamingleaderboardsandplayerstats,useproperdatatypesandindexing,optimizequerieswithwindowfunctions,implementcaching,andconsiderpartitioningorshardingatscale.First,useINTorBIGINTforscoresandDECIMALforfractionalvalues,andapplycompoundi
Securing MySQL Administrative Interfaces and ToolsJul 24, 2025 am 01:41 AMTo avoid exposing the management interface to the public network, it should be accessed through SSH tunnels or intranets; 2. Use a dedicated account and strictly control permissions, disable root remote login; 3. Enable SSL encryption transmission, set strong password policies and cookie authentication; 4. Regularly update the MySQL version and monitor log audit operations. If the MySQL management interface is not protected properly, it should restrict access methods, strengthen authentication, encrypt communications and continuously monitor security status.


Hot AI Tools

Undress AI Tool
Undress images for free

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

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

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Chinese version
Chinese version, very easy to use

WebStorm Mac version
Useful JavaScript development tools

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

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

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment






