Mysql、MariaDB传统主从集群配置
Mysql和MariaDB的最基本的集群方式是主从方式,也是众多中小企业使用最多的集群方式,该集群部署简单,轻松上手,让我们一步步来吧。 测试所用版本为MariaDB 10.1 源码安装,安装到默认路径/usr/local/mysql下。 $BUILD/autorun.sh$./configure$make-j4$sudo
Mysql和MariaDB的最基本的集群方式是主从方式,也是众多中小企业使用最多的集群方式,该集群部署简单,轻松上手,让我们一步步来吧。
测试所用版本为MariaDB 10.1 源码安装,安装到默认路径/usr/local/mysql下。
$ BUILD/autorun.sh $ ./configure $ make -j4 $ sudo make install
既然是主从数据库,至少需要两个数据库实例,本文例子将两个实例部署在同一台电脑里,计划配置如下表。
实例作用 | 地址 | 端口 | 数据文件路径 | 配置文件路径 |
主 | localhost | 10001 | /home/lyw/db/data/1 | /home/lyw/db/etc/my1.cnf |
从 | localhost | 10002 | /home/lyw/db/data/2 | /home/lyw/db/etc/my2.cnf |
准备两个mysql的配置文件my1.cnf, 我们从默认配置复制过来
$ mkdir -p /home/lyw/db/etc/ $ cd /usr/local/mysql $ cp support-files/my-medium.cnf /home/lyw/db/etc/my1.cnf $ cp support-files/my-medium.cnf /home/lyw/db/etc/my2.cnf
my1.cnf修改如下几行
[mysqld] port = 10001 socket = /tmp/mysql1.sock log-bin = mysql-bin server-id = 10001 datadir = /home/lyw/db/data/1 user = lyw
my2.cnf修改如下几行
[mysqld] port = 10002 socket = /tmp/mysql2.sock log-bin = mysql-bin server-id = 10002 datadir = /home/lyw/db/data/2 user = lyw
分别初始化两个数据库
$ mkdir -p /home/lyw/db/data/ $ scripts/mysql_install_db --defaults-file=/home/lyw/db/etc/my1.cnf $ scripts/mysql_install_db --defaults-file=/home/lyw/db/etc/my2.cnf
启动两个数据库
由于是在一台电脑里,因此没有使用服务启动,而是直接用mysqld_safe启动,大家尽可根据自己的情况启动。
$ bin/mysqld_safe --defaults-file=/home/lyw/db/etc/my1.cnf & $ bin/mysqld_safe --defaults-file=/home/lyw/db/etc/my2.cnf &
检查两个数据库是否启动成功,对应的端口和sock文件已经存在,即表示启动成功。
$ sudo netstat -nlp |grep mysql tcp6 0 0 :::10001 :::* LISTEN 22211/mysqld tcp6 0 0 :::10002 :::* LISTEN 23536/mysqld unix 2 [ ACC ] STREAM LISTENING 365439 22211/mysqld /tmp/mysql1.sock unix 2 [ ACC ] STREAM LISTENING 368511 23536/mysqld /tmp/mysql2.sock
MariaDB默认有两行任何本机用户都能登陆,会影响新创建的复制用户的登陆,因此需要删除。然后创建复制用户方可生效。(如果是在两台不同的电脑中运行,可以不删除这两行。)
$ bin/mysql -S /tmp/mysql1.sock -uroot MariaDB [(none)]> use mysql; MariaDB [mysql]> delete from user where user=''; MariaDB [mysql]> flush privileges; MariaDB [mysql]> grant replication slave on *.* to 'rep'@'%' identified by '123456';
然后查看master数据库的运行状态,记下这两个值。
MariaDB [mysql]> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000005 | 1075 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
在从服务器上执行
$ bin/mysql -S /tmp/mysql2.sock -uroot MariaDB [(none)]> change master to master_host='localhost', master_port=10001, master_user='rep', master_password='123456', master_log_file='mysql-bin.000005', master_log_pos=1075; MariaDB [(none)]> start slave; MariaDB [(none)]> show slave status \G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: localhost Master_User: rep Master_Port: 10001 Connect_Retry: 60 Master_Log_File: mysql-bin.000005 Read_Master_Log_Pos: 1075 Relay_Log_File: lyw-hp-relay-bin.000002 Relay_Log_Pos: 537 Relay_Master_Log_File: mysql-bin.000005 Slave_IO_Running: Yes Slave_SQL_Running: Yes
如果Slave_IO_Running 和 Slave_SQL_Running 都为Yes,则说明启动主从配置成功。
测试:
在master数据库执行
MariaDB [mysql]> create database lyw; Query OK, 1 row affected (0.00 sec) MariaDB [mysql]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | lyw | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.00 sec)
在slave数据库执行
MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | lyw | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.00 sec)
可见在主库创建的数据库lyw,在从库也有。可以在主库尝试执行其他写入语句,在丛库也能看到同样的数据。
用同样的方法,一个主数据库后面可以跟多个从数据库,增加数据的可靠性和读的吞吐量。
如果主库也配置上从从库同步数据,即互为主从,那就是常说的双主,或主主,有些文章里会说修改下自增涨id以防止冲突,我却不这样认为,双主的两个数据库并非强一致,而是有一定的延迟,很多事务处理会出现错误,皆因为延迟导致。双主并不能大大增强写入的吞吐量,因为所有数据都要在每个库写入。虽然说因为批量的缘故可以有少量提升,但是对于延迟导致的错误来说,微不足道。
配置双主是有意义的,但是并非用于同时写入,同一时间还是只写一个库,而当主挂了后,为切换主从做的准备,切换后,主再次启动时,立马就能同步到从的数据。比如在cobar集群中,就可以考虑用双主配置。
以上是传统主从复制方法,从Mysql5.6和MariaDB10.0开始,有了新的主从复制方式,可参考这篇文章:http://bangbangba.blog.51cto.com/3180873/1702294

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Dans la base de données MySQL, la relation entre l'utilisateur et la base de données est définie par les autorisations et les tables. L'utilisateur a un nom d'utilisateur et un mot de passe pour accéder à la base de données. Les autorisations sont accordées par la commande Grant, tandis que le tableau est créé par la commande Create Table. Pour établir une relation entre un utilisateur et une base de données, vous devez créer une base de données, créer un utilisateur, puis accorder des autorisations.

MySQL a une version communautaire gratuite et une version d'entreprise payante. La version communautaire peut être utilisée et modifiée gratuitement, mais le support est limité et convient aux applications avec des exigences de stabilité faibles et des capacités techniques solides. L'Enterprise Edition fournit une prise en charge commerciale complète pour les applications qui nécessitent une base de données stable, fiable et haute performance et disposées à payer pour le soutien. Les facteurs pris en compte lors du choix d'une version comprennent la criticité des applications, la budgétisation et les compétences techniques. Il n'y a pas d'option parfaite, seulement l'option la plus appropriée, et vous devez choisir soigneusement en fonction de la situation spécifique.

Simplification de l'intégration des données: AmazonrDSMysQL et l'intégration Zero ETL de Redshift, l'intégration des données est au cœur d'une organisation basée sur les données. Les processus traditionnels ETL (extrait, converti, charge) sont complexes et prennent du temps, en particulier lors de l'intégration de bases de données (telles que AmazonrDSMysQL) avec des entrepôts de données (tels que Redshift). Cependant, AWS fournit des solutions d'intégration ETL Zero qui ont complètement changé cette situation, fournissant une solution simplifiée et à temps proche pour la migration des données de RDSMySQL à Redshift. Cet article plongera dans l'intégration RDSMYSQL ZERO ETL avec Redshift, expliquant comment il fonctionne et les avantages qu'il apporte aux ingénieurs de données et aux développeurs.

Pour remplir le nom d'utilisateur et le mot de passe MySQL: 1. Déterminez le nom d'utilisateur et le mot de passe; 2. Connectez-vous à la base de données; 3. Utilisez le nom d'utilisateur et le mot de passe pour exécuter des requêtes et des commandes.

MySQL convient aux débutants car il est simple à installer, puissant et facile à gérer les données. 1. Installation et configuration simples, adaptées à une variété de systèmes d'exploitation. 2. Prise en charge des opérations de base telles que la création de bases de données et de tables, d'insertion, d'interrogation, de mise à jour et de suppression de données. 3. Fournir des fonctions avancées telles que les opérations de jointure et les sous-questionnaires. 4. Les performances peuvent être améliorées par l'indexation, l'optimisation des requêtes et le partitionnement de la table. 5. Prise en charge des mesures de sauvegarde, de récupération et de sécurité pour garantir la sécurité et la cohérence des données.

1. Utilisez l'index correct pour accélérer la récupération des données en réduisant la quantité de données numérisées SELECT * FROMMLOYEESEESHWHERELAST_NAME = 'SMITH'; Si vous recherchez plusieurs fois une colonne d'une table, créez un index pour cette colonne. If you or your app needs data from multiple columns according to the criteria, create a composite index 2. Avoid select * only those required columns, if you select all unwanted columns, this will only consume more server memory and cause the server to slow down at high load or frequency times For example, your table contains columns such as created_at and updated_at and timestamps, and then avoid selecting * because they do not require inefficient query se

Une explication détaillée des attributs d'acide de base de données Les attributs acides sont un ensemble de règles pour garantir la fiabilité et la cohérence des transactions de base de données. Ils définissent comment les systèmes de bases de données gérent les transactions et garantissent l'intégrité et la précision des données même en cas de plantages système, d'interruptions d'alimentation ou de plusieurs utilisateurs d'accès simultanément. Présentation de l'attribut acide Atomicité: une transaction est considérée comme une unité indivisible. Toute pièce échoue, la transaction entière est reculée et la base de données ne conserve aucune modification. Par exemple, si un transfert bancaire est déduit d'un compte mais pas augmenté à un autre, toute l'opération est révoquée. BeginTransaction; UpdateAccountSsetBalance = Balance-100Wh

Guide d'optimisation des performances de la base de données MySQL dans les applications à forte intensité de ressources, la base de données MySQL joue un rôle crucial et est responsable de la gestion des transactions massives. Cependant, à mesure que l'échelle de l'application se développe, les goulots d'étranglement des performances de la base de données deviennent souvent une contrainte. Cet article explorera une série de stratégies efficaces d'optimisation des performances MySQL pour garantir que votre application reste efficace et réactive dans des charges élevées. Nous combinerons des cas réels pour expliquer les technologies clés approfondies telles que l'indexation, l'optimisation des requêtes, la conception de la base de données et la mise en cache. 1. La conception de l'architecture de la base de données et l'architecture optimisée de la base de données sont la pierre angulaire de l'optimisation des performances MySQL. Voici quelques principes de base: sélectionner le bon type de données et sélectionner le plus petit type de données qui répond aux besoins peut non seulement économiser un espace de stockage, mais également améliorer la vitesse de traitement des données.
