Maison base de données tutoriel mysql CentOS 6.4系统MySQL主从复制基本配置实践

CentOS 6.4系统MySQL主从复制基本配置实践

Jun 07, 2016 pm 04:41 PM
centos mysql configuration de base 复制 系统

对于MySQL数据库一般用途的主从复制,可以实现数据的备份(如果希望在主节点失效后,能够使从节点自动接管,就需要更加复杂的配置,这里暂时先不考虑),如果主节点出现硬件故障,数据库服务器可以直接手动切换成备份节点(从节点),继续提供服务。基本的主

对于MySQL数据库一般用途的主从复制,可以实现数据的备份(如果希望在主节点失效后,能够使从节点自动接管,就需要更加复杂的配置,这里暂时先不考虑),如果主节点出现硬件故障,数据库服务器可以直接手动切换成备份节点(从节点),继续提供服务。基本的主从复制配置起来非常容易,这里我们做个简单的记录总结。
我们选择两台服务器来进行MySQL的主从复制实践,一台m1作为主节点,另一台nn作为从节点。
两台机器上都需要安装MySQL数据库,如果想要卸掉默认安装的,可以执行如下命令:

sudo rpm -e --nodeps mysql
yum list | grep mysql
Copier après la connexion

现在可以在CentOS 6.4上直接执行如下命令进行安装:

sudo yum install -y mysql-server mysql mysql-deve
Copier après la connexion

为root用户设置密码:

mysqladmin -u root password 'shiyanjun'
Copier après la connexion

然后可以直接通过MySQL客户端登录:

mysql -u root -p
Copier après la connexion

主节点配置

首先,考虑到数据库的安全,以及便于管理,我们需要在主节点m1上增加一个专用的复制用户,使得任意想要从主节点进行复制从节点都必须使用这个账号:

CREATE USER repli_user;
GRANT REPLICATION SLAVE ON *.* TO 'repli_user'@'%' IDENTIFIED BY 'shiyanjun';
Copier après la connexion

这里还进行了操作授权,使用这个换用账号来执行集群复制。如果想要限制IP端段,也可以在这里进行配置授权。
然后,在主节点m1上,修改MySQL配置文件/etc/my.cnf,使其支持Master复制功能,修改后的内容如下所示:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
server-id=1
log-bin=m-bin
log-bin-index=m-bin.index
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Copier après la connexion

server-id指明主节点的身份,从节点通过这个server-id来识别该节点是Master节点(复制架构中的源数据库服务器节点)。
如果MySQL当前已经启动,修改完集群复制配置后需要重启服务器:

sudo service mysqld restart
Copier après la connexion
Copier après la connexion

从节点配置

接着,类似地进行从节点nn的配置,同样修改MySQL配置文件/etc/my.cnf,使其支持Slave端复制功能,修改后的内容如下所示:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
server-id=2
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Copier après la connexion

同样,如果MySQL当前已经启动,修改完集群复制配置后需要重启服务器:

sudo service mysqld restart
Copier après la connexion
Copier après la connexion

然后,需要使从节点nn指向主节点,并启动Slave复制,执行如下命令:

CHANGE MASTER TO MASTER_HOST='m1', MASTER_PORT=3306, MASTER_USER='repli_user', MASTER_PASSWORD='shiyanjun';
START SLAVE;
Copier après la connexion

验证集群复制

这时,可以在主节点m1上执行相关操作,验证从节点nn同步复制了主节点的数据库中的内容变更。
如果此时,我们已经配置好了主从复制,那么对于主节点m1上MysQL数据库的任何变更都会复制到从节点nn上,包括建库建表、插入更新等操作,下面我们从建库开始:
在主节点m1上建库建表:

CREATE DATABASE workflow;
CREATE TABLE `workflow`.`project` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  `type` tinyint(4) NOT NULL DEFAULT '0',
  `description` varchar(500) DEFAULT NULL,
  `create_at` date DEFAULT NULL,
  `update_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `status` tinyint(4) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Copier après la connexion

在m1上查看binlog内容,执行命令:

SHOW BINLOG EVENTS\G
Copier après la connexion

binlog内容内容如下所示:

*************************** 1. row ***************************
   Log_name: m-bin.000001
        Pos: 4
Event_type: Format_desc
  Server_id: 1
End_log_pos: 106
       Info: Server ver: 5.1.73-log, Binlog ver: 4
*************************** 2. row ***************************
   Log_name: m-bin.000001
        Pos: 106
Event_type: Query
  Server_id: 1
End_log_pos: 197
       Info: CREATE DATABASE workflow
*************************** 3. row ***************************
   Log_name: m-bin.000001
        Pos: 197
Event_type: Query
  Server_id: 1
End_log_pos: 671
       Info: CREATE TABLE `workflow`.`project` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  `type` tinyint(4) NOT NULL DEFAULT '0',
  `description` varchar(500) DEFAULT NULL,
  `create_at` date DEFAULT NULL,
  `update_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `status` tinyint(4) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
3 rows in set (0.00 sec)
Copier après la connexion

通过上述binlog内容,我们大概可以看到MySQL的binlog都记录那些信息,一个事件对应一行记录。这些记录信息的组织结构如下所示:

  • Log_name:日志名称,指定的记录操作的binlog日志名称,这里是m-bin.000001,与我们前面在/etc/my.cnf中配置的相对应
  • Pos:记录事件的起始位置
  • Event_type:事件类型
  • End_log_pos:记录事件的结束位置
  • Server_id:服务器标识
  • Info:事件描述信息

然后,我们可以查看在从节点nn上复制的情况。通过如下命令查看从节点nn上数据库和表的信息:

SHOW DATABASES;
USE workflow;
SHOW TABLES;
DESC project;
Copier après la connexion

我们再看一下执行插入语句的情况。在主节点m1上执行如下SQL语句:

INSERT INTO `workflow`.`project` VALUES(1, 'Avatar-II', 1, 'Avatar-II project', '2014-02-16', '2014-02-16 11:09:54', 0);
Copier après la connexion

可以在从节点上执行查询,看到从节点nn上复制了主节点m1上执行的INSERT语句的记录:

SELECT * FROM workflow.project;
Copier après la connexion

验证复制成功。

复制常用命令

下面,我们总结了几个在MySQL主从复制场景中常用到的几个相关命令:

  • 终止主节点复制
STOP MASTER;
Copier après la connexion
  • 清除主节点复制文件
RESET MASTER;
Copier après la connexion
  • 终止从节点复制
STOP SLAVE;
Copier après la connexion
  • 清除从节点复制文件
RESET SLAVE;
Copier après la connexion
  • 查看主节点复制状态
SHOW MASTER STATUS\G;
Copier après la connexion

结果示例:

*************************** 1. row ***************************
            File: m-bin.000001
        Position: 956
    Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)
Copier après la connexion
  • 查看从节点复制状态
SHOW SLAVE STATUS\G;
Copier après la connexion

结果示例:

*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: m1
                  Master_User: repli_user
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: m-bin.000001
          Read_Master_Log_Pos: 956
               Relay_Log_File: slave-relay-bin.000002
                Relay_Log_Pos: 1097
        Relay_Master_Log_File: m-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 956
              Relay_Log_Space: 1252
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
1 row in set (0.00 sec)
Copier après la connexion
  • 查看BINLOG列表
SHOW BINARY LOGS\G
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment optimiser la configuration CentOS HDFS Comment optimiser la configuration CentOS HDFS Apr 14, 2025 pm 07:15 PM

Améliorer les performances HDFS sur CentOS: un guide d'optimisation complet pour optimiser les HDF (système de fichiers distribué Hadoop) sur CentOS nécessite une considération complète du matériel, de la configuration du système et des paramètres réseau. Cet article fournit une série de stratégies d'optimisation pour vous aider à améliorer les performances du HDFS. 1. Expansion de la mise à niveau matérielle et des ressources de sélection: augmentez autant que possible le CPU, la mémoire et la capacité de stockage du serveur. Matériel haute performance: adopte les cartes réseau et les commutateurs de réseau haute performance pour améliorer le débit du réseau. 2. Configuration du système Réglage des paramètres du noyau à réglage fin: Modifier /etc/sysctl.conf Fichier pour optimiser les paramètres du noyau tels que le numéro de connexion TCP, le numéro de manche de fichier et la gestion de la mémoire. Par exemple, ajustez l'état de la connexion TCP et la taille du tampon

Centos arrête la maintenance 2024 Centos arrête la maintenance 2024 Apr 14, 2025 pm 08:39 PM

Centos sera fermé en 2024 parce que sa distribution en amont, Rhel 8, a été fermée. Cette fermeture affectera le système CentOS 8, l'empêchant de continuer à recevoir des mises à jour. Les utilisateurs doivent planifier la migration et les options recommandées incluent CentOS Stream, Almalinux et Rocky Linux pour garder le système en sécurité et stable.

Ligne de commande de l'arrêt CentOS Ligne de commande de l'arrêt CentOS Apr 14, 2025 pm 09:12 PM

La commande de fermeture CENTOS est arrêtée et la syntaxe est la fermeture de [options] le temps [informations]. Les options incluent: -H Arrêtez immédiatement le système; -P éteignez l'alimentation après l'arrêt; -r redémarrer; -t temps d'attente. Les temps peuvent être spécifiés comme immédiats (maintenant), minutes (minutes) ou une heure spécifique (HH: mm). Des informations supplémentaires peuvent être affichées dans les messages système.

Comment vérifier la configuration de CentOS HDFS Comment vérifier la configuration de CentOS HDFS Apr 14, 2025 pm 07:21 PM

Guide complet pour vérifier la configuration HDFS dans les systèmes CentOS Cet article vous guidera comment vérifier efficacement la configuration et l'état de l'exécution des HDF sur les systèmes CentOS. Les étapes suivantes vous aideront à bien comprendre la configuration et le fonctionnement des HDF. Vérifiez la variable d'environnement Hadoop: Tout d'abord, assurez-vous que la variable d'environnement Hadoop est correctement définie. Dans le terminal, exécutez la commande suivante pour vérifier que Hadoop est installé et configuré correctement: HadoopVersion Check HDFS Fichier de configuration: Le fichier de configuration de base de HDFS est situé dans le répertoire / etc / hadoop / conf / le répertoire, où Core-site.xml et hdfs-site.xml sont cruciaux. utiliser

Comment démarrer MySQL par Docker Comment démarrer MySQL par Docker Apr 15, 2025 pm 12:09 PM

Le processus de démarrage de MySQL dans Docker se compose des étapes suivantes: Tirez l'image MySQL pour créer et démarrer le conteneur, définir le mot de passe de l'utilisateur racine et mapper la connexion de vérification du port Créez la base de données et l'utilisateur accorde toutes les autorisations sur la base de données

Adresse IP de configuration CentOS Adresse IP de configuration CentOS Apr 14, 2025 pm 09:06 PM

Étapes pour configurer l'adresse IP dans CENTOS: Afficher la configuration du réseau actuel: IP ADDR Modifier le fichier de configuration du réseau: Sudo VI / etc.

Quels sont les malentendus communs dans la configuration CentOS HDFS? Quels sont les malentendus communs dans la configuration CentOS HDFS? Apr 14, 2025 pm 07:12 PM

Problèmes et solutions courants pour la configuration du système de fichiers distribué HADOOP (HDFS) sous CentOS lors de la création d'un cluster HADOOPHDFS sur CentOS, certains erreurs de configurations courantes peuvent entraîner une dégradation des performances, une perte de données et même le cluster ne peut pas démarrer. Cet article résume ces problèmes courants et leurs solutions pour vous aider à éviter ces pièges et à assurer la stabilité et le fonctionnement efficace de votre cluster HDFS. Erreur de configuration du rack-Aware: Problème: les informations de rack-Aware ne sont pas configurées correctement, ce qui entraîne une distribution inégale des répliques de blocs de données et l'augmentation de la charge du réseau. SOLUTION: Vérifiez la configuration du rack-Aware dans le fichier hdfs-site.xml et utilisez HDFSDFSADMIN-PRINTTOPO

CentOS installe MySQL CentOS installe MySQL Apr 14, 2025 pm 08:09 PM

L'installation de MySQL sur CENTOS implique les étapes suivantes: Ajout de la source MySQL YUM appropriée. Exécutez la commande YUM Install MySQL-Server pour installer le serveur MySQL. Utilisez la commande mysql_secure_installation pour créer des paramètres de sécurité, tels que la définition du mot de passe de l'utilisateur racine. Personnalisez le fichier de configuration MySQL selon les besoins. Écoutez les paramètres MySQL et optimisez les bases de données pour les performances.

See all articles