<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MariaDB | Kemmy&#039;s Blog</title>
	<atom:link href="https://www.kemmy-it.com/category/database/mariadb/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.kemmy-it.com</link>
	<description>データベースやプログラミング言語等の基本的事項を、図や表を使ってアウトプットしています。</description>
	<lastBuildDate>Sat, 11 Oct 2025 04:47:40 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.kemmy-it.com/wp-content/uploads/2024/09/Kemmy_vga-150x150.png</url>
	<title>MariaDB | Kemmy&#039;s Blog</title>
	<link>https://www.kemmy-it.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【MariaDB】非同期レプリケーション設定方法</title>
		<link>https://www.kemmy-it.com/2025/02/01/mariadb_asynchronous-2/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Sat, 01 Feb 2025 07:23:31 +0000</pubDate>
				<category><![CDATA[MariaDB]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=4045</guid>

					<description><![CDATA[目次 【MariaDB】レプリケーションとは【MariaDB】レプリケーションの目的データの冗長化とバックアップ負荷分散災害復旧テスト環境の構築【MariaDB】レプリケーションの種類非同期レプリケーションセミ同期レプリ [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">【MariaDB】レプリケーションとは</a></li><li><a href="#toc2" tabindex="0">【MariaDB】レプリケーションの目的</a><ol><li><a href="#toc3" tabindex="0">データの冗長化とバックアップ</a></li><li><a href="#toc4" tabindex="0">負荷分散</a></li><li><a href="#toc5" tabindex="0">災害復旧</a></li><li><a href="#toc6" tabindex="0">テスト環境の構築</a></li></ol></li><li><a href="#toc7" tabindex="0">【MariaDB】レプリケーションの種類</a><ol><li><a href="#toc8" tabindex="0">非同期レプリケーション</a></li><li><a href="#toc9" tabindex="0">セミ同期レプリケーション</a></li><li><a href="#toc10" tabindex="0">マルチソースレプリケーション</a></li></ol></li><li><a href="#toc11" tabindex="0">本ブログのでのシステム環境</a></li><li><a href="#toc12" tabindex="0">【MariaDB】Ｍasterサーバーの設定</a><ol><li><a href="#toc13" tabindex="0">設定ファイルの編集</a></li></ol></li><li><a href="#toc14" tabindex="0">【MariaDB】レプリケーションユーザーの作成</a></li><li><a href="#toc15" tabindex="0">【MariaDB】Slaveサーバーの設定</a><ol><li><a href="#toc16" tabindex="0">設定ファイルの編集</a></li></ol></li><li><a href="#toc17" tabindex="0">【MariaDB】レプリケーションの開始</a><ol><li><a href="#toc18" tabindex="0">Ｍasterサーバー　バイナリログの確認</a></li><li><a href="#toc19" tabindex="0">Slaveサーバー　レプリケーションの開始</a></li><li><a href="#toc20" tabindex="0">レプリケーション動作の確認</a><ol><li><a href="#toc21" tabindex="0">Ｍasterサーバー側にレコードを追加して確認</a></li><li><a href="#toc22" tabindex="0">Slaveサーバー側の確認</a></li></ol></li></ol></li><li><a href="#toc23" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【MariaDB】レプリケーションとは</span></h2>



<p>MariaDBのレプリケーションはデータのバックアップや負荷分散に役立つ重要な技術です。</p>



<p>本ブログでは、Windows環境でMariaDBの非同期レプリケーションを設定する方法を初心者～中級者向けに紹介します。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc2">【MariaDB】レプリケーションの目的</span></h2>



<h3 class="wp-block-heading"><span id="toc3">データの冗長化とバックアップ</span></h3>



<p>Masterサーバーが障害を起こした場合でもSlaveサーバーにデータが複製されているため、システムの可用性を向上させることができます。</p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc4">負荷分散</span></h3>



<p>読み取り専用のクエリをSlaveサーバーに振り分けることで、Masterサーバーの負荷を軽減しシステム全体のパフォーマンスを向上させる事ができます。</p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc5">災害復旧</span></h3>



<p>データセンターやサーバーの障害が発生した際、別の場所にあるSlaveサーバーからデータを復旧することが可能になります。</p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc6">テスト環境の構築</span></h3>



<p>本番環境のデータを複製しテスト用の環境を作成することで、リスクを抑えた検証作業が可能になります。</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="384" src="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-001-1024x384.png" alt="" class="wp-image-4112" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-001-1024x384.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-001-300x113.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-001-768x288.png 768w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-001-1536x576.png 1536w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-001.png 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading"><span id="toc7">【MariaDB】レプリケーションの種類</span></h2>



<p>MariaDBのレプリケーションには以下の種類があります。</p>



<h3 class="wp-block-heading"><span id="toc8">非同期レプリケーション</span></h3>



<ul class="wp-block-list">
<li>最も一般的なレプリケーション方式であり、Masterサーバーがトランザクションをコミットした後、即座に処理を完了とみなします。<br><br></li>



<li>SlaveサーバーはMasterのバイナリログを非同期で取得して適用します。<br><br></li>



<li>MasterとSlaveの間でデータのズレが生じる可能性があるため、障害発生時にデータの不整合が発生することがあります。</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc9">セミ同期レプリケーション</span></h3>



<ul class="wp-block-list">
<li>Masterサーバーはトランザクションをコミットした後、少なくとも1つのSlaveサーバーがデータを受信したことを確認するまで次の処理を実行しません。<br><br></li>



<li>非同期レプリケーションよりもデータ整合性が向上し、Masterの障害発生時にデータの欠落を最小限に抑えることができます。<br>ただし、Masterの処理速度が遅くなる可能性があるため、パフォーマンスへの影響を考慮する必要があります。</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc10">マルチソースレプリケーション</span></h3>



<ul class="wp-block-list">
<li>1つのSlaveサーバーが複数のMasterサーバーからデータを取得し、統合する方式です。<br><br></li>



<li>複数のデータソースを集約したい場合や、分散データベースを統合する際に役立ちます。<br><br></li>



<li>複雑な設定が必要であり、データの競合を適切に管理する必要があります。</li>
</ul>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="384" src="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-002-1024x384.png" alt="" class="wp-image-4114" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-002-1024x384.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-002-300x113.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-002-768x288.png 768w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-002-1536x576.png 1536w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-002.png 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading"><span id="toc11">本ブログのでのシステム環境</span></h2>



<ul class="wp-block-list">
<li><strong>Masterサーバー</strong>
<ul class="wp-block-list">
<li>ＯＳ：Windows 10 Pro 22H2</li>



<li>MariaDB：Community版 11.4.4</li>
</ul>
</li>



<li><strong>Slaveサーバー</strong>
<ul class="wp-block-list">
<li>ＯＳ：Windows 10 Home 22H2</li>



<li>MariaDB：Community版 11.4.4</li>
</ul>
</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc12">【MariaDB】Ｍasterサーバーの設定</span></h2>



<h3 class="wp-block-heading"><span id="toc13">設定ファイルの編集</span></h3>



<p>設定ファイル my.ini をＭasterサーバー用に変更します。</p>



<pre class="wp-block-code"><code>&#91;mysqld]
datadir=C:/Program Files/MariaDB 11.4/data
port=3306
innodb_buffer_pool_size=1527M
character-set-server=utf8mb4

# ------- 追加パラメータ ----------------------------------------------------
server-id=1  # サーバーごとに一意のIDを設定（Masterは1）
log-bin=mysql-bin  # バイナリログを有効化
bind-address = 0.0.0.0   # 外部からの接続を許可
binlog-format=row  # 行ベースのバイナリログフォーマットを使用（推奨）
expire_logs_days=7  # バイナリログの保存期間（7日間）
max_binlog_size=500M  # バイナリログの最大サイズ（500MB）
gtid_strict_mode=1　# GTID整合性に関するチェックを有効化
#----------------------------------------------------------------------------

&#91;client]
port=3306
plugin-dir=C:\Program Files\MariaDB 11.4/lib/plugin</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>log-bin=mysql-bin</strong><br>バイナリログを有効化します。<br>バイナリログ（Binary Log）は、MariaDBの<strong>変更履歴を記録するログ</strong>であり、データベースの更新（INSERT、UPDATE、DELETEなど）の情報が保存されます。レプリケーションでは、Masterサーバーがこのバイナリログを記録し、Slaveサーバーがそれを取得してデータを同期します。<br><br><br></li>



<li><strong>binlog-format=row</strong><br>バイナリログの記録形式を行ベースに設定します。（推奨）<br>行形式は各行のデータの変更内容を直接記録する為、再実行時にデータの不整合が発生し難くなるますが、ログのサイズが大きくなりがちです。
<ul class="wp-block-list">
<li>その他の形式
<ul class="wp-block-list">
<li>STATEMENT（ステートメントベース）<br>SQLクエリ（INSERT, UPDATE, DELETEなど）をそのままログに記録する方法ですが、<code>NOW()</code> や <code>RAND()</code> を含むクエリ等、再実行時に異なる結果になる可能性があります。</li>



<li>MIXED（ミックス）<br>STATEMENTとROWのハイブリッドで、MariaDBがクエリの内容に応じて適切なフォーマットを自動で選択します。<br><br></li>
</ul>
</li>
</ul>
</li>



<li><strong>expire_logs_days=7</strong><br>バイナリログの保存期間（7日間）に設定しています。<br><br></li>



<li><strong>max_binlog_size=500M</strong><br>バイナリログ（binlog）の最大サイズを指定します。このサイズに達すると新しいバイナリログファイルが自動的に作成されます。
<ul class="wp-block-list">
<li><strong>推奨サイズ</strong>
<ul class="wp-block-list">
<li><strong>デフォルト値</strong>: <code>1G</code> (1GB)</li>



<li><strong>小規模環境（低トラフィック）</strong>: <code>100M</code> ～ <code>500M</code></li>



<li><strong>中規模環境（中程度のトラフィック）</strong>: <code>500M</code> ～ <code>1G</code></li>



<li><strong>大規模環境（高トラフィック）</strong>: <code>1G</code> 以上（適宜調整）<br><br></li>
</ul>
</li>
</ul>
</li>



<li><strong>gtid_strict_mode=1</strong><br>GTIDモードを有効にします。すべてのトランザクションにGTIDが割り当てられデータの不整合を防ぐことができます。<br><br></li>
</ul>



<ul class="wp-block-list">
<li><strong>binlog-do-db=replication_db</strong><br>特定のデータベースのみをレプリケーションしたい場合に指定します。指定しない場合は全ての変更がバイナリログに記録されます。</li>
</ul>



<p></p>



<p>設定を変更したらMariaDBを再起動します。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="384" src="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-003-1024x384.png" alt="" class="wp-image-4115" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-003-1024x384.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-003-300x113.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-003-768x288.png 768w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-003-1536x576.png 1536w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-003.png 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading"><span id="toc14">【MariaDB】レプリケーションユーザーの作成</span></h2>



<p>レプリケーション専用のユーザーを作成し、Slaveサーバーからの接続を許可します。</p>



<pre class="wp-block-code"><code>MariaDB &#91;(none)]&gt; CREATE USER 'repl_user'@'%' IDENTIFIED BY '********';
Query OK, 0 rows affected (0.012 sec)

MariaDB &#91;(none)]&gt; GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
Query OK, 0 rows affected (0.007 sec)

MariaDB &#91;(none)]&gt; FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

MariaDB &#91;(none)]&gt;</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc15">【MariaDB】Slaveサーバーの設定</span></h2>



<h3 class="wp-block-heading"><span id="toc16">設定ファイルの編集</span></h3>



<p>設定ファイル my.ini をSlaveサーバー用に変更します。</p>



<pre class="wp-block-code"><code>&#91;mysqld]
datadir=C:/Program Files/MariaDB 11.4/data
port=3306
innodb_buffer_pool_size=1018M
character-set-server=utf8mb4

# ------- 追加パラメータ ----------------------------------------------------
server-id=2  # スレーブサーバーの一意なID
log-bin=mysql-bin  # バイナリログを有効化
bind-address = 0.0.0.0  # 外部からの接続を許可
relay-log=relay-bin  # リレーログを設定
relay-log-index=relay-bin.index  # リレーログインデックスファイル名
read-only=1  # スレーブサーバーを読み取り専用に設定
skip-slave-start=1  # スレーブの自動開始を無効化
relay-log-recovery=1　# 破損したリレーログを自動的に修復します。
# ---------------------------------------------------------------------------

&#91;client]
port=3306
plugin-dir=C:\Program Files\MariaDB 11.4/lib/plugin
</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>server-id=2</strong><br>スレーブサーバーの一意なIDを指定します。Masterサーバーは1です。<br><br></li>



<li><strong>relay-log=relay-bin</strong><br>リレーログのファイル名が <code>relay-bin.000001</code>, <code>relay-bin.000002</code> &#8230; のように作成されます。リレーログファイルは<strong>relay-log-index</strong> によって管理され、どのリレーログが現在適用されているかを管理します。<br><br></li>



<li><strong>relay-log-index=relay-bin.index</strong><br>リレーログのインデックスファイルを指定します。</li>
</ul>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="384" src="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-004-1024x384.png" alt="" class="wp-image-4116" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-004-1024x384.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-004-300x113.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-004-768x288.png 768w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-004-1536x576.png 1536w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-004.png 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading"><span id="toc17">【MariaDB】レプリケーションの開始</span></h2>



<h3 class="wp-block-heading"><span id="toc18">Ｍasterサーバー　バイナリログの確認</span></h3>



<p>Masterサーバーの現在のバイナリログファイルと位置を確認し、その情報をレプリケーション開始時Slave側で設定します。</p>



<pre class="wp-block-code"><code>MariaDB &#91;(none)]&gt; SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |     2763 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.000 sec)</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc19">Slaveサーバー　レプリケーションの開始</span></h3>



<p>レプリケーションを開始するために、Slaveサーバーで<code>CHANGE MASTER TO</code> コマンドを実行します。Masterサーバーの現在のバイナリログファイルと位置情報は以下の様に設定します。</p>



<pre class="wp-block-code"><code>MariaDB &#91;(none)]&gt; CHANGE MASTER TO
    -&gt;     MASTER_HOST='192.168.0.80',
    -&gt;     MASTER_USER='repl_user',
    -&gt;     MASTER_PASSWORD='********',
    -&gt;    <span class="marker-under"> MASTER_LOG_FILE='mysql-bin.00</span><span class="marker-under">0003</span>',   -- Masterから得たファイル名
    -&gt;     <span class="marker-under">MASTER_LOG_POS=</span>2763;                  -- Masterから得た位置
Query OK, 0 rows affected, 1 warning (0.029 sec)

MariaDB &#91;(none)]&gt;</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Slaveサーバーでレプリケーションを開始します。</p>



<pre class="wp-block-code"><code>MariaDB &#91;(none)]&gt; START SLAVE;
Query OK, 0 rows affected (0.007 sec)</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc20">レプリケーション動作の確認</span></h3>



<p>正常に動作していれば <code>Slave_IO_Running</code> と <code>Slave_SQL_Running</code> が <code>Yes</code> になります。</p>



<p>■Slaveサーバーで「SHOW SLAVE STATUR\G」コマンドを実行</p>



<pre class="wp-block-code"><code>MariaDB &#91;(none)]&gt; SHOW SLAVE STATUS\G
*************************** 1. row ***************************
                Slave_IO_State: Waiting for master to send event
                   Master_Host: 192.168.0.80
                   Master_User: repl_user
                   Master_Port: 3306
                 Connect_Retry: 60
               <span class="marker-under">Master_Log_File: mysql-bin.000003</span>
           <span class="marker-under">Read_Master_Log_Pos: 2763</span>
                Relay_Log_File: relay-bin.000002
                 Relay_Log_Pos: 555
         Relay_Master_Log_File: mysql-bin.000003
              <span class="marker-under">Slave_IO_Running: Yes</span>
             <span class="marker-under">Slave_SQL_Running: Yes</span>
               Replicate_Do_DB:
           　　　　　　　　　・
           　　　　　　　　　・
           　　　　　　　　　・
           SQL_Remaining_Delay: NULL
       Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
              Slave_DDL_Groups: 0
Slave_Non_Transactional_Groups: 0
    Slave_Transactional_Groups: 0
          Replicate_Rewrite_DB:
1 row in set (0.001 sec)</code></pre>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="684" src="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-006-1024x684.jpg" alt="" class="wp-image-4119" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-006-1024x684.jpg 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-006-300x200.jpg 300w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-006-768x513.jpg 768w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-006-1536x1025.jpg 1536w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-006.jpg 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading"><span id="toc21">Ｍasterサーバー側にレコードを追加して確認</span></h4>



<p>Ｍasterサーバー側にレコードを追加してSlaveサーバーに反映されるか確認します。</p>



<pre class="wp-block-code"><code>MariaDB &#91;(none)]&gt; show databases;
+--------------------+
| Database           |
+--------------------+
| books_db           |
| customers_db       |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.003 sec)

MariaDB &#91;(none)]&gt; use books_db
Database changed
MariaDB &#91;books_db]&gt; show tables;
+--------------------+
| Tables_in_books_db |
+--------------------+
| books              |
+--------------------+
1 row in set (0.003 sec)

MariaDB &#91;books_db]&gt; select * from books;
Empty set (0.000 sec)

MariaDB &#91;books_db]&gt; INSERT INTO books (title, author, genre, price, stock_quantity, publication_date)VALUES ('The Great Adventure', 'John Doe', 'Adventure', 1200.00, 10, '2023-05-10');
Query OK, 1 row affected (0.007 sec)

MariaDB &#91;books_db]&gt; select * from books;
+---------+---------------------+----------+-----------+---------+----------------+------------------+
| book_id | title               | author   | genre     | price   | stock_quantity | publication_date |
+---------+---------------------+----------+-----------+---------+----------------+------------------+
|       7 | The Great Adventure | John Doe | Adventure | 1200.00 |             10 | 2023-05-10       |
+---------+---------------------+----------+-----------+---------+----------------+------------------+
1 row in set (0.001 sec)

MariaDB &#91;books_db]&gt;</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc22">Slaveサーバー側の確認</span></h4>



<p>Slaveサーバー側にも同一内容のレコードが作成されているか確認します。下記のように同一レコードが作成されており非同期レプリケーションの正常動作が確認できました。</p>



<pre class="wp-block-code"><code>MariaDB &#91;books_db]&gt; show databases;
+--------------------+
| Database           |
+--------------------+
| books_db           |
| customers_db       |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.001 sec)

MariaDB &#91;books_db]&gt; use books_db;
Database changed
MariaDB &#91;books_db]&gt; show tables;
+--------------------+
| Tables_in_books_db |
+--------------------+
| books              |
+--------------------+
1 row in set (0.001 sec)

MariaDB &#91;books_db]&gt; select * from books;
+---------+---------------------+----------+-----------+---------+----------------+------------------+
| book_id | title               | author   | genre     | price   | stock_quantity | publication_date |
+---------+---------------------+----------+-----------+---------+----------------+------------------+
|       7 | The Great Adventure | John Doe | Adventure | 1200.00 |             10 | 2023-05-10       |
+---------+---------------------+----------+-----------+---------+----------------+------------------+
1 row in set (0.000 sec)

MariaDB &#91;books_db]&gt;</code></pre>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="384" src="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-005-1024x384.png" alt="" class="wp-image-4117" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-005-1024x384.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-005-300x113.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-005-768x288.png 768w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-005-1536x576.png 1536w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-005.png 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading"><span id="toc23">まとめ</span></h2>



<p>非同期レプリケーションではMasterデータベースからSlaveデータベースにデータが複製されます。しかし、コミットした時点でSlaveへのデータ転送が即時に実行される訳ではありません。その為、データの整合性がリアルタイムに保たれない場合があります。</p>



<p>非同期レプリケーションの場合は特に以下の点に留意しましょう。</p>



<ul class="wp-block-list">
<li><strong>データ遅延</strong><br>アプリケーションを開発する場合、遅延を考慮した設計をする<br><br></li>



<li><strong>監視とログ管理</strong><br>SHOW SLAVE STATUS等のコマンドを実行して、エラーや警告がないか定期的にチェックする<br><br></li>



<li><strong>レプリケーションの再同期</strong><br>同期が取れなくなった場合、<code>STOP SLAVE</code>と<code>START SLAVE</code>を使って再同期を行うがデータ損失の可能性があるため慎重に行う<br><br></li>



<li><strong>バックアップの実施</strong><br>定期的にバックアップを実施しデータ損失リスクを最小限に抑える</li>
</ul>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="384" src="https://www.kemmy-it.com/wp-content/uploads/2025/02/00_blg-database-1024x384.png" alt="" class="wp-image-4113" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/02/00_blg-database-1024x384.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/02/00_blg-database-300x113.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/02/00_blg-database-768x288.png 768w, https://www.kemmy-it.com/wp-content/uploads/2025/02/00_blg-database-1536x576.png 1536w, https://www.kemmy-it.com/wp-content/uploads/2025/02/00_blg-database.png 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MariaDB】バックアップ/リストア mariadb-backupコマンド編</title>
		<link>https://www.kemmy-it.com/2025/01/29/mariadb_mariadb-backup/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Wed, 29 Jan 2025 12:10:49 +0000</pubDate>
				<category><![CDATA[MariaDB]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=3984</guid>

					<description><![CDATA[目次 【MariaDB】バックアップ/リストア mariadb-backupコマンド編【MariaDB】mariadb-backupコマンドとは【MariaDB】mariadb-backupの基本的な使い方mariadb [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">【MariaDB】バックアップ/リストア mariadb-backupコマンド編</a></li><li><a href="#toc2" tabindex="0">【MariaDB】mariadb-backupコマンドとは</a></li><li><a href="#toc3" tabindex="0">【MariaDB】mariadb-backupの基本的な使い方</a><ol><li><a href="#toc4" tabindex="0">mariadb-backupの基本</a><ol><li><a href="#toc5" tabindex="0">フルバックアップの作成</a></li><li><a href="#toc6" tabindex="0">インクリメンタルバックアップの作成</a></li><li><a href="#toc7" tabindex="0">圧縮したバックアップ</a></li><li><a href="#toc8" tabindex="0">バックアップファイルだけを圧縮したい場合</a></li></ol></li><li><a href="#toc9" tabindex="0">mariadb-backupコマンドの主なオプション</a></li></ol></li><li><a href="#toc10" tabindex="0">【MariaDB】mariadb-backupリストアの手順</a><ol><li><a href="#toc11" tabindex="0">MariaDBサーバーの停止</a><ol><li><a href="#toc12" tabindex="0">バックアップデータを準備する（&#8211;prepare）</a></li><li><a href="#toc13" tabindex="0">データをリストアする（&#8211;copy-back）</a></li><li><a href="#toc14" tabindex="0">バックアップデータの保存先または復元元のディレクトリを指定する(&#8211;target-dir)</a></li><li><a href="#toc15" tabindex="0">データディレクトリの権限を修正する</a></li><li><a href="#toc16" tabindex="0">MariaDBサーバーを起動する</a></li></ol></li></ol></li><li><a href="#toc17" tabindex="0">【MariaDB】mariadb-backup リストア時の注意点</a><ol><li><a href="#toc18" tabindex="0">データディレクトリの場所</a></li><li><a href="#toc19" tabindex="0">バックアップが圧縮されている場合</a></li><li><a href="#toc20" tabindex="0">増分バックアップの適用順序</a></li></ol></li><li><a href="#toc21" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【MariaDB】バックアップ/リストア mariadb-backupコマンド編</span></h2>



<p>データベースのバックアップとリストアは、システム管理者や開発者にとって重要な業務です。本ブログではMariaDB（Community Edition版）でのバックアップとリストアの基本的な方法を、初心者/中級者向けに紹介します。</p>



<p>MariaDB（Community Edition版）のバックアップ方法には主に「<strong>mysqldump</strong><sup data-fn="dd9ea45e-e702-4e7e-8e44-f6054badba11" class="fn"><a href="#dd9ea45e-e702-4e7e-8e44-f6054badba11" id="dd9ea45e-e702-4e7e-8e44-f6054badba11-link">1</a></sup>」と「<strong>mariadb-backupコマンド</strong>」がありますが、本ブログでは「<strong><strong><span class="marker-under-red">mariadb-backupコマンド</span></strong></strong>」を紹介します。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc2">【MariaDB】mariadb-backupコマンドとは</span></h2>



<p>MariaDBの<strong><strong>mariadb-backup</strong></strong>コマンドは、データベースのデータを<strong>物理フォルダごとコピー</strong>するバックアップ手法です。<br>この方法はmysqldumpのようにSQLテキストを生成するのではなく、<strong>バイナリデータ</strong>をそのまま保存するため、大規模データに適しています。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>主な特徴</strong>
<ul class="wp-block-list">
<li><strong>物理バックアップをサポート</strong>
<ul class="wp-block-list">
<li>データベース内のすべてのデータファイルを直接コピーする方法</li>



<li>大規模なデータベースでも高速にバックアップが可能</li>
</ul>
</li>
</ul>
</li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>フルバックアップと増分バックアップに対応</strong>
<ul class="wp-block-list">
<li><strong>フルバックアップ</strong>
<ul class="wp-block-list">
<li>データベース全体のデータをバックアップ（初回のバックアップとして推奨）。</li>
</ul>
</li>
</ul>
</li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>増分バックアップ</strong>
<ul class="wp-block-list">
<li>前回のバックアップ以降に変更されたデータのみをバックアップします。ストレージを節約しつつバックアップスピードを向上できます。</li>
</ul>
</li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>トランザクションの一貫性を維持</strong>
<ul class="wp-block-list">
<li>InnoDBストレージエンジンのトランザクションログを含めてバックアップするため、トランザクションの一貫性を確保できます。</li>



<li>稼働中でもバックアップが可能（ホットバックアップ対応）</li>
</ul>
</li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>バックアップ後のデータ検証が可能</strong>
<ul class="wp-block-list">
<li>バックアップファイルが正しい状態かどうかを検証できます。</li>
</ul>
</li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>MyISAMとAriaストレージエンジンもサポート</strong>
<ul class="wp-block-list">
<li>デフォルトではInnoDBストレージエンジンに最適化されていますが、MyISAMやAriaなど他のストレージエンジンにも使用可能です。</li>
</ul>
</li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>主な利用場面</strong>
<ul class="wp-block-list">
<li>データベースが大規模で、運用中にバックアップを取得する必要がある場合</li>



<li>定期的なインクリメンタルバックアップを利用したい場合</li>



<li>バックアップファイルのセキュリティやストレージ効率を重視する場合<br></li>
</ul>
</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc3">【MariaDB】mariadb-backupの基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc4">mariadb-backupの基本</span></h3>



<h4 class="wp-block-heading"><span id="toc5">フルバックアップの作成</span></h4>



<pre class="wp-block-code"><code>C:¥&gt;mariadb-backup --backup --target-dir=D:\Backup --user=root --password=your_password</code></pre>



<ul class="wp-block-list">
<li><strong>&#8211;backup</strong>：バックアップモードを指定</li>



<li><strong>&#8211;target-dir</strong>：バックアップファイルを保存するディレクトリを指定</li>



<li><strong>&#8211;user/&#8211;password</strong>：MariaDBの接続情報を指定</li>
</ul>



<p><strong>■実行例</strong></p>



<pre class="wp-block-code"><code>C:¥&gt;C:\&gt;mariadb-backup --backup --target-dir=H:\Backup --user=root --password=********
&#91;00] 2025-01-29 20:37:05 Connecting to MariaDB server host: localhost, user: root, password: set, port: 3306, socket: C:\Program Files\MariaDB 11.4\data\mysql.sock
　　　　　　　　　　　　　　　　　　　　・
　　　　　　　　　　　　　　　　　　　　・
　　　　　　　　　　　　　　　　　　　　・
&#91;00] 2025-01-29 20:37:17 All tables unlocked
&#91;00] 2025-01-29 20:37:17 Backup created in directory 'H:\Backup\'
&#91;00] 2025-01-29 20:37:17 Writing backup-my.cnf
&#91;00] 2025-01-29 20:37:17         ...done
&#91;00] 2025-01-29 20:37:17 Writing mariadb_backup_info
&#91;00] 2025-01-29 20:37:17         ...done
&#91;00] 2025-01-29 20:37:17 Redo log (from LSN 74243 to 74259) was copied.
&#91;00] 2025-01-29 20:37:17 completed OK!

C:\&gt;</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc6">インクリメンタルバックアップの作成</span></h4>



<ul class="wp-block-list">
<li><strong>フルバックアップ後に変更された部分だけをバックアップする場合</strong>
<ul class="wp-block-list">
<li><strong>&#8211;incremental-basedir</strong>
<ul class="wp-block-list">
<li>フルバックアップ（または前回のバックアップ）のディレクトリを指定。</li>
</ul>
</li>
</ul>
</li>
</ul>



<pre class="wp-block-code"><code>C:\&gt;mariadb-backup --backup --target-dir=D:\Backup\incremental --incremental-basedir=D:\Backup\full --user=root --password=your_password</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc7">圧縮したバックアップ</span></h4>



<ul class="wp-block-list">
<li><strong>バックアップを7-zip等の圧縮ソフトで圧縮するとディスク容量を節約できます。</strong></li>
</ul>



<pre class="wp-block-code"><code>C:¥&gt;mariadb-backup --backup --target-dir=D:\Backup --user=root --password=your_password &amp;&amp; 7z a D:\Backup\backup.7z D:\Backup
</code></pre>



<ul class="wp-block-list">
<li><strong>説明</strong>
<ul class="wp-block-list">
<li><strong><strong>MariaDB Backup</strong></strong>
<ul class="wp-block-list">
<li>&#8211;backup: バックアップモードを指定</li>



<li>&#8211;target-dir=D:\Backup: バックアップデータの保存先</li>



<li>&#8211;user=rootと&#8211;password=your_password：MariaDBの認証情報</li>
</ul>
</li>



<li><strong>7-zipのオプション</strong>
<ul class="wp-block-list">
<li>a<br>圧縮ファイルを作成します（add）</li>



<li>D:\Backup\backup.7z<br>作成される圧縮ファイルのパス</li>



<li>D:\Backup<br>圧縮対象のディレクトリ</li>
</ul>
</li>



<li><strong>&amp;&amp;</strong><br>1つ目のコマンド（MariaDB Backup）が成功した場合にのみ、2つ目のコマンド（7-Zipの圧縮）が実行される</li>
</ul>
</li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc8">バックアップファイルだけを圧縮したい場合</span></h4>



<ul class="wp-block-list">
<li>mariadb-backupのバックアップ出力を標準出力（&#8211;streamオプション）で直接圧縮することも可能です。</li>
</ul>



<pre class="wp-block-code"><code>C:¥&gt;mariadb-backup --backup --stream=xbstream --user=root --password=your_password | 7z a -si D:\Backup\backup.7z
</code></pre>



<ul class="wp-block-list">
<li><strong>説明</strong>
<ul class="wp-block-list">
<li>&#8211;stream=xbstream<br>標準出力にバックアップデータを出力。</li>



<li>-si<br>標準入力（stdin）からデータを受け取る。</li>
</ul>
</li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc9">mariadb-backupコマンドの主なオプション</span></h3>



<ul class="wp-block-list">
<li><strong>&#8211;backup</strong><br>バックアップを作成するモードを有効にします。</li>
</ul>



<pre class="wp-block-code"><code>c:\&gt;mariadb-backup --backup --target-dir=D:¥Backup\to\backup --user=root --password=your_password</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>&#8211;prepare</strong><br>バックアップデータを復元可能な状態に準備する（トランザクションログを適用し一貫性を確保）</li>
</ul>



<pre class="wp-block-code"><code>c:\&gt;mariadb-backup --prepare --target-dir=D:¥Backup\to\backup</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>&#8211;copy-back</strong><br>準備済みのバックアップデータを元のデータディレクトリに復元します<br>※）<span class="marker-under-red"><strong>MariaDBサーバーを停止した状態で使用する</strong></span></li>
</ul>



<pre class="wp-block-code"><code>c:\&gt;mariadb-backup --copy-back --target-dir=D:¥Backup\to\backup</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>&#8211;target-dir</strong><br>バックアップデータを保存するディレクトリを指定します。</li>
</ul>



<pre class="wp-block-code"><code>c:\&gt;mariadb-backup --backup --target-dir=D:¥Backup\to\backup</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>&#8211;incremental-basedir</strong><br>増分バックアップを作成する際に、基となるフルバックアップや以前の増分バックアップのディレクトリを指定します。</li>
</ul>



<pre class="wp-block-code"><code>c:\&gt;mariadb-backup --backup --incremental-basedir=D:¥Backup\to\full_backup --target-dir=D:¥Backup\to\incremental_backup</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>&#8211;parallel</strong><br>バックアップを並列処理するスレッド数を指定します。大規模なデータベースでバックアップの速度を向上させる際に有用です。</li>
</ul>



<pre class="wp-block-code"><code>c:\&gt;mariadb-backup --backup --parallel=4 --target-dir=D:¥Backup\to\backup</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>&#8211;stream</strong><br>バックアップデータを標準出力（STDOUT）に送信します。他のツール（例: gzipや7-Zip）とパイプ処理する場合に使用します。</li>
</ul>



<pre class="wp-block-code"><code>C:\&gt;mariadb-backup --backup --stream=xbstream --user=root --password=your_password | 7z a -si D:\Backup\backup.7z</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>&#8211;databases</strong><br>特定のデータベースだけをバックアップします。</li>
</ul>



<pre class="wp-block-code"><code>c:\&gt;mariadb-backup --backup --databases="db1 db2" --target-dir=D:\Backup\backup</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>&#8211;tablespaces</strong><br>特定のテーブルスペースのみをバックアップします。</li>
</ul>



<pre class="wp-block-code"><code>c:\&gt;mariadb-backup --backup --tablespaces=ts1,ts2 --target-dir=D:\Backup\backup</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>&#8211;no-lock</strong><br>テーブルのロックをスキップします。バックアップ中にデータベースを利用可能にしたい場合に使用します（ただし、一貫性が保証されない場合があります）。</li>
</ul>



<pre class="wp-block-code"><code>c:\&gt;mariadb-backup --backup --no-lock --target-dir=D:\Backup\backup</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc10">【MariaDB】mariadb-backupリストアの手順</span></h2>



<h3 class="wp-block-heading"><span id="toc11">MariaDBサーバーの停止</span></h3>



<p>データを安全に復元するため管理者権限でMariaDBサーバーを停止します。</p>



<pre class="wp-block-code"><code>c:\&gt;net stop mariadb</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc12">バックアップデータを準備する（&#8211;prepare）</span></h4>



<p>バックアップデータをリストア可能な状態に準備します。</p>



<pre class="wp-block-code"><code>c:\&gt;mariadb-backup --prepare --target-dir=D:\Backup\Full</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc13">データをリストアする（&#8211;copy-back）</span></h4>



<h4 class="wp-block-heading"><span id="toc14">バックアップデータの保存先または復元元のディレクトリを指定する(&#8211;target-dir)</span></h4>



<p>データディレクトリにバックアップデータをコピーします。データディレクトリが既存の場合、<strong>空にしておく必要があります</strong>。</p>



<pre class="wp-block-code"><code>c:¥&gt;mariadb-backup --copy-back --target-dir=D:\Backup\Full</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc15">データディレクトリの権限を修正する</span></h4>



<p>MariaDBサービスが正しく動作するよう、データディレクトリの権限を確認・修正します（Windowsでは通常不要ですが、エラー発生時等に確認）</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc16">MariaDBサーバーを起動する</span></h4>



<p>リストア後、管理者権限でMariaDBサーバーを起動します。</p>



<pre class="wp-block-code"><code>c:\&gt;net start mariadb</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc17">【MariaDB】mariadb-backup リストア時の注意点</span></h2>



<h3 class="wp-block-heading"><span id="toc18">データディレクトリの場所</span></h3>



<p>MariaDBのmy.ini設定ファイルでデータディレクトリ（datadir）がカスタマイズされている場合、その場所を確認する必要ありますす。</p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc19">バックアップが圧縮されている場合</span></h3>



<p>gzipや7-Zipで圧縮したバックアップを使用する場合は、まず解凍してからリストアを実行します。</p>



<pre class="wp-block-code"><code>c:¥&gt;7z x backup.7z -oD:\Backup\Full</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc20">増分バックアップの適用順序</span></h3>



<ul class="wp-block-list">
<li><strong>最初にフルバックアップを&#8211;prepareで準備</strong></li>



<li><strong>次に、順番に増分バックアップを&#8211;prepare &#8211;incremental-dirで適用</strong></li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc21">まとめ</span></h2>



<p>MariaDBのデータを安全に保護するためには適切なバックアップ計画と実行が欠かせません。<br>特に、<strong>mariadb-backup</strong> は物理バックアップを取得できる強力なツールであり大規模なデータベースの運用に欠かせません。</p>



<p>本記事では、mariadb-backup を使った<strong>フルバックアップ・増分バックアップの取得方法</strong>と、それを<strong>リストアする手順</strong>について紹介しました。</p>



<p>バックアップの頻度や方法は、データベースの規模や業務要件に応じて調整する必要があります。定期的なバックアップとテストリストアを行い、<strong>「いざという時」に確実に復元できる状態</strong>を維持しましょう。</p>



<p></p>


<ol class="wp-block-footnotes"><li id="dd9ea45e-e702-4e7e-8e44-f6054badba11">「mysqldump」は下記ブログを参照ください。<br>　　ブログ：<a href="https://www.kemmy-it.com/2025/01/26/mariadb_mysqldump/">【MariaDB】バックアップ/リストア mysqldump編 </a> <a href="#dd9ea45e-e702-4e7e-8e44-f6054badba11-link" aria-label="脚注参照1にジャンプ">↩︎</a></li></ol>


<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MariaDB】バックアップ/リストア ｍysqldump編</title>
		<link>https://www.kemmy-it.com/2025/01/26/mariadb_mysqldump/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Sun, 26 Jan 2025 11:23:28 +0000</pubDate>
				<category><![CDATA[MariaDB]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=3909</guid>

					<description><![CDATA[目次 【MariaDB】バックアップ/リストア ｍysqldump編【MariaDB】ｍysqldumpとは【MariaDB】バックアップの基本基本コマンド特定のデータベースをバックアップする方法すべてのデータベースをバ [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">【MariaDB】バックアップ/リストア ｍysqldump編</a></li><li><a href="#toc2" tabindex="0">【MariaDB】ｍysqldumpとは</a></li><li><a href="#toc3" tabindex="0">【MariaDB】バックアップの基本</a><ol><li><a href="#toc4" tabindex="0">基本コマンド</a><ol><li><a href="#toc5" tabindex="0">特定のデータベースをバックアップする方法</a></li><li><a href="#toc6" tabindex="0">すべてのデータベースをバックアップする方法</a></li><li><a href="#toc7" tabindex="0">特定のテーブルだけをバックアップ</a></li><li><a href="#toc8" tabindex="0">圧縮したバックアップ</a></li></ol></li><li><a href="#toc9" tabindex="0">バックアップのオプション</a></li></ol></li><li><a href="#toc10" tabindex="0">【MariaDB】リストアの基本</a><ol><li><a href="#toc11" tabindex="0">基本コマンド</a><ol><li><a href="#toc12" tabindex="0">バックアップした特定のSQLファイルのリストア</a></li><li><a href="#toc13" tabindex="0">圧縮ファイルのリストア</a></li></ol></li></ol></li><li><a href="#toc14" tabindex="0">mysqldumpバックアップ　データの整合性</a><ol><li><a href="#toc15" tabindex="0">MariaDBを停止させないでバックアップを取得する方法</a></li><li><a href="#toc16" tabindex="0">MariaDBを停止させるべきケース</a></li></ol></li><li><a href="#toc17" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【MariaDB】バックアップ/リストア ｍysqldump編</span></h2>



<p>データベースのバックアップとリストアは、システム管理者や開発者にとって重要な業務です。本ブログではMariaDB（Community Edition版）でのバックアップとリストアの基本的な方法を、初心者/中級者向けに紹介します。</p>



<p>MariaDB（Community Edition版）のバックアップ方法には主に「<strong>mysqldump</strong>」と「mariadb-backup」<sup data-fn="d21b270f-1ccc-4dd4-a0f0-32db121eb4d4" class="fn"><a href="#d21b270f-1ccc-4dd4-a0f0-32db121eb4d4" id="d21b270f-1ccc-4dd4-a0f0-32db121eb4d4-link">1</a></sup>がありますが、本ブログでは「<strong>mysqldump</strong>」を紹介します。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc2">【MariaDB】ｍysqldumpとは</span></h2>



<p><strong>mysqldump</strong>は、MariaDBに含まれるバックアップ用コマンドラインツールです。データを<strong><span class="marker-under-red">SQL形式のファイル</span></strong>にエクスポートし、リストア時にそのファイルをインポートして復元します。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>主な特徴</strong>
<ul class="wp-block-list">
<li><strong>SQLスクリプト形式：</strong>読みやすくバックアップファイルの編集が可能</li>



<li><strong>軽量かつポータブル：</strong>別の環境にデータを簡単に移行できる</li>



<li><strong>多様なバックアップ対象</strong>：特定のテーブル/データベース/全データベースを選択可能</li>
</ul>
</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>利用場面</strong>
<ul class="wp-block-list">
<li>簡単にデータを移行したい場合</li>



<li>テキスト形式で編集や変更が必要な場合</li>
</ul>
</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc3">【MariaDB】バックアップの基本</span></h2>



<h3 class="wp-block-heading"><span id="toc4">基本コマンド</span></h3>



<h4 class="wp-block-heading"><span id="toc5">特定のデータベースをバックアップする方法</span></h4>



<pre class="wp-block-code"><code>C:\&gt;mysqldump -u root -p test_db &gt; H:\Backup\test_db_backup.sql</code></pre>



<ul class="wp-block-list">
<li>-u root：ユーザー名（ここではroot）</li>



<li>-p：パスワードを入力するプロンプトを表示</li>



<li>test_db：バックアップ対象のデータベース名</li>



<li>&gt; H:\Backup\test_db_backup.sql：バックアップファイルの出力先</li>
</ul>



<p><strong>■実行例</strong></p>



<pre class="wp-block-code"><code>C:¥&gt;mysqldump -u root -p test_db &gt; H:\Backup\test_db_back.sql
Enter password: ******

C:\&gt;</code></pre>



<p><strong>■test_db_back.sqlの内容</strong>（例）</p>



<pre class="wp-block-code"><code>　　　　　　　　　　　　　　・
　　　　　　　　　　　　　　・
　　　　　　　　　　　　　　・
--
-- Table structure for table `customers`
--

DROP TABLE IF EXISTS `customers`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `customers` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `customer_name` text NOT NULL,
  `customer_address` text DEFAULT NULL,
  `customer_email` text DEFAULT NULL,
  `customer_age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `customers`
--

LOCK TABLES `customers` WRITE;
/*!40000 ALTER TABLE `customers` DISABLE KEYS */;
INSERT INTO `customers` VALUES
(1,'田中 太郎','東京都新宿区1-2-3','tanaka.taro@example.com',30),
(2,'佐藤 花子','大阪府大阪市北区4-5-6','sato.hanako@example.com',25),
(3,'鈴木 次郎','北海道札幌市中央区7-8-9','suzuki.jiro@example.com',40),
(4,'高橋 美咲','福岡県福岡市博多区10-11-12','takahashi.misaki@example.com',35),
(5,'山本 健','愛知県名古屋市中区13-14-15','yamamoto.ken@example.com',50);
/*!40000 ALTER TABLE `customers` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
　　　　　　　　　　　　　　・
　　　　　　　　　　　　　　・
　　　　　　　　　　　　　　・</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc6">すべてのデータベースをバックアップする方法</span></h4>



<ul class="wp-block-list">
<li><strong>&#8211;all-databasesオプションを指定する</strong></li>
</ul>



<pre class="wp-block-code"><code>C:\&gt;mysqldump -u root -p --all-databases &gt; H:\Backup\all_databases_backup.sql</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc7">特定のテーブルだけをバックアップ</span></h4>



<pre class="wp-block-code"><code>C:\&gt;mysqldump -u root -p test_db table1 table2 &gt; H:\Backup\tables_backup.sql</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc8">圧縮したバックアップ</span></h4>



<ul class="wp-block-list">
<li><strong>バックアップを7-zip等の圧縮ソフトで圧縮するとディスク容量を節約できます。</strong></li>
</ul>



<pre class="wp-block-code"><code>C:¥&gt;mysqldump -u root -p test_db | 7z a -si H:\Backup\test_db_backup.7z -mx=9</code></pre>



<ul class="wp-block-list">
<li><strong>説明</strong>
<ul class="wp-block-list">
<li><strong>mysqldump</strong>
<ul class="wp-block-list">
<li>MariaDBのtest_dbデータベースをエクスポートします</li>



<li>-u root -pでユーザー名を指定し、プロンプトでパスワードを入力します</li>
</ul>
</li>



<li><strong>|（パイプ）</strong>
<ul class="wp-block-list">
<li>mysqldumpの出力を直接7-zipに渡します</li>
</ul>
</li>



<li><strong>7-zipのオプション</strong>
<ul class="wp-block-list">
<li>a<br>圧縮ファイルを作成します（add）</li>



<li>-si<br>標準入力（Standard Input）を使用してデータを受け取ります</li>



<li>test_db_backup.7z<br>作成される圧縮ファイル名</li>



<li>-mx=9<br>圧縮レベルを最大（9）に指定。但し、圧縮スピードを優先したい場合は -mx=1 を指定</li>
</ul>
</li>
</ul>
</li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>バックアップファイルをフォルダ単位で管理している場合、フォルダ全体を圧縮すると便利です。</strong></li>
</ul>



<pre class="wp-block-code"><code>7z a -t7z backup_folder.7z H:\backup_folder -mx=9</code></pre>



<ul class="wp-block-list">
<li><strong>backup_folder.7z</strong>：出力するフォルダ名</li>



<li><strong>H:\backup_folder</strong>：圧縮するフォルダ名</li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc9">バックアップのオプション</span></h3>



<p>mysqldumpには多数のオプションがあり、要件に応じて使い分けることができます。</p>



<ul class="wp-block-list">
<li><strong>ロックを防ぐ</strong><br>&#8211;single-transaction：バックアップ中にテーブルがロックされるのを防ぎたい場合
<ul class="wp-block-list">
<li><strong>推奨用途</strong><br>InnoDBストレージエンジンを使用している場合</li>
</ul>
</li>
</ul>



<pre class="wp-block-code"><code>c:\&gt;mysqldump -u root -p --single-transaction test_db &gt; H:\Backup\test_db_backup.sql</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>データだけをバックアップ</strong><br>&#8211;no-create-info：データベース構造を除きデータのみをバックアップしたい場合</li>
</ul>



<pre class="wp-block-code"><code>c:\&gt;mysqldump -u root -p --no-create-info test_db &gt; H:\Backup\data_only.sql</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>スキーマのみをバックアップ</strong><br>&#8211;no-data：テーブルの構造だけをバックアップしたい場合</li>
</ul>



<pre class="wp-block-code"><code>c:\&gt;mysqldump -u root -p --no-data test_db &gt; H:\Backup\schema_only.sql</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>特定の条件でデータをバックアップ</strong><br>&#8211;where：条件付きでデータをバックアップ（例: 特定の日付以降のデータ）したい場合</li>
</ul>



<pre class="wp-block-code"><code>c:\&gt;mysqldump -u root -p --where="created_at &gt; '2025-01-01'" test_db &gt; H:\Backup\filtered_backup.sql</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc10">【MariaDB】リストアの基本</span></h2>



<h3 class="wp-block-heading"><span id="toc11">基本コマンド</span></h3>



<p>リストアするにはリストア先のデータベースが存在している必要があるので、無い場合は作成しておく必要があります。データベース名は変更してもかまいません。</p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc12">バックアップした特定のSQLファイルのリストア</span></h4>



<pre class="wp-block-code"><code>c:\&gt;mysql -u root -p test_db &lt; H:\Backup\test_db_backup.sql</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc13">圧縮ファイルのリストア</span></h4>



<p>圧縮されたバックアップファイル（例: backup.7z）を解凍し、解凍したSQLファイルをmysqlコマンドでリストアします</p>



<ul class="wp-block-list">
<li><strong>圧縮されたバックアップファイル（例: backup.7z）の解凍</strong></li>
</ul>



<pre class="wp-block-code"><code>c:¥&gt;7z x H:\Backup\test_db_backup.7z -oH:\Backup
C:\&gt;mysql -u root -p test_db &lt; H:\Backup\test_db_backup</code></pre>



<ul class="wp-block-list">
<li><strong>説明</strong>
<ul class="wp-block-list">
<li><strong>7z.exe x</strong><br>解凍（extract）コマンド</li>



<li><strong>H:\Backup\test_db_backup.7z</strong><br>圧縮したファイル</li>



<li><strong>-oH:\Backup</strong><br>解凍先フォルダ<br><br></li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li><strong>解凍したSQLファイルのリストア</strong></li>
</ul>



<pre class="wp-block-code"><code>C:\&gt;mysql -u root -p test_db &lt; H:\Backup\test_db_backup</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>解凍とリストアを一つのコマンドにまとめる事もできます</strong></li>
</ul>



<pre class="wp-block-code"><code>c:¥&gt;7z e -so D:\Backup\test_db_backup.7z | mysql -u root -p test_db</code></pre>



<ul class="wp-block-list">
<li><strong>説明</strong>
<ul class="wp-block-list">
<li><strong>e -so</strong><br>解凍し、内容を標準出力（stdout）に送るオプション。</li>



<li><strong>|</strong><br>解凍した内容を直接mysqlに渡します。</li>
</ul>
</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc14">mysqldumpバックアップ　データの整合性</span></h2>



<p>mysqldumpはMariaDBサーバーと通信してデータを取得するツールであり、通常は<strong>稼働中のデータベースサーバー</strong>から直接バックアップを取得します。</p>



<p>ただし、MariaDBを停止すべきケースもあるので紹介します。</p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc15">MariaDBを停止させないでバックアップを取得する方法</span></h3>



<ul class="wp-block-list">
<li><strong>&#8211;single-transaction オプションを使用する</strong><br>バックアップの開始時にトランザクションを開始し、そのトランザクションのスナップショットを基にデータをエクスポートします。このオプションは、InnoDBで使用する場合に非常に有効です。<br>※MyISAMテーブルではこのオプションは有効ではありません。</li>
</ul>



<pre class="wp-block-code"><code>c:¥&gt;mysqldump -u root -p --single-transaction test_db &gt; H:\Backup\test_db_backup.sql</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>テーブルをロックする（デフォルト）</strong><br>テーブルをロックしてデータの変更を防ぎます（デフォルト動作）。ただし、全テーブルがロックされるため、バックアップ中のクエリ実行に影響が出ることがあります。<br>※データの整合性よりもパフォーマンスを優先する場合は、&#8211;skip-lock-tables オプションを<br>　使用します。</li>
</ul>



<pre class="wp-block-code"><code>c:¥&gt;mysqldump -u root -p --lock-tables test_db &gt; H:\Backup\test_db_backup.sql</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc16">MariaDBを停止させるべきケース</span></h3>



<p>MariaDBを停止してバックアップを取る必要があるのは以下のケースに限られます</p>



<ol class="wp-block-list">
<li><strong>データの完全性を100%確保したい場合</strong><br>サーバーを停止させることで完全な状態でバックアップを取得できます。ただし、停止中はMariaDBを使用できなくなるため、メンテナンスウィンドウを確保する必要があります。<br><br></li>



<li><strong>ファイルベースのバックアップを使用する場合</strong><br>データディレクトリを丸ごとコピーするファイルベースのバックアップを取る場合は、MariaDBを停止させる必要があります。<br><br>但しxtrabackupのようなツールを使用すると、停止させずにファイルベースのバックアップが可能です。</li>
</ol>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc17">まとめ</span></h2>



<p>mysqldumpはそのシンプルさと柔軟性からMariaDBのバックアップツールとして非常に便利です。</p>



<p>基本的なバックアップ・リストア手順だけでなくオプションを活用して効率を最大化し、セキュリティやパフォーマンスを考慮した運用が可能です。</p>



<p></p>


<ol class="wp-block-footnotes"><li id="d21b270f-1ccc-4dd4-a0f0-32db121eb4d4">「mariadb-backup」は下記ブログを参照ください。<br>　　ブログ：<a href="https://www.kemmy-it.com/2025/01/29/mariadb_mariadb-backup/">【MariaDB】バックアップ/リストア mariadb-backupコマンド編</a> <a href="#d21b270f-1ccc-4dd4-a0f0-32db121eb4d4-link" aria-label="脚注参照1にジャンプ">↩︎</a></li></ol>


<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MariaDB】ユーザー権限の管理（付与/確認/取り消し/ロール 他）</title>
		<link>https://www.kemmy-it.com/2025/01/25/mariadb_userkengen/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Sat, 25 Jan 2025 06:00:01 +0000</pubDate>
				<category><![CDATA[MariaDB]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=3824</guid>

					<description><![CDATA[目次 【MariaDB】ユーザーの権限管理（付与/確認/取り消し/ロール 他）【MariaDB】root ユーザーMariaDB 権限の付与MariaDB 権限の確認MariaDB 権限の取り消し【MariaDB】権限の [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">【MariaDB】ユーザーの権限管理（付与/確認/取り消し/ロール 他）</a></li><li><a href="#toc2" tabindex="0">【MariaDB】root ユーザー</a><ol><li><a href="#toc3" tabindex="0">MariaDB 権限の付与</a></li><li><a href="#toc4" tabindex="0">MariaDB 権限の確認</a></li><li><a href="#toc5" tabindex="0">MariaDB 権限の取り消し</a></li></ol></li><li><a href="#toc6" tabindex="0">【MariaDB】権限の種類</a><ol><li><a href="#toc7" tabindex="0">MariaDB ユーザー作成に必要な権限</a></li><li><a href="#toc8" tabindex="0">MariaDB  基本的な権限</a></li><li><a href="#toc9" tabindex="0">MariaDB 高度な権限</a></li><li><a href="#toc10" tabindex="0">MariaDB セキュリティ関連の権限</a></li><li><a href="#toc11" tabindex="0">MariaDB 特定の操作に関連する権限</a></li><li><a href="#toc12" tabindex="0">MariaDB グローバルレベルで利用可能な権限</a></li></ol></li><li><a href="#toc13" tabindex="0">【MariaDB】ロール</a><ol><li><a href="#toc14" tabindex="0">MariaDB ロールの特徴</a></li><li><a href="#toc15" tabindex="0">MariaDB ロールの作成</a></li><li><a href="#toc16" tabindex="0">MariaDB ロールへの権限付与</a></li><li><a href="#toc17" tabindex="0">MariaDB ロールのユーザーへの割り当て</a></li><li><a href="#toc18" tabindex="0">MariaDB ロールの有効化</a></li><li><a href="#toc19" tabindex="0">MariaDB ロールを無効化</a></li><li><a href="#toc20" tabindex="0">MariaDB ロールの権限確認</a></li><li><a href="#toc21" tabindex="0">MariaDB ロールの削除</a></li><li><a href="#toc22" tabindex="0">MariaDB ロールの利用例</a></li><li><a href="#toc23" tabindex="0">MariaDB ロールの注意事項</a></li></ol></li><li><a href="#toc24" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【MariaDB】ユーザーの権限管理（付与/確認/取り消し/ロール 他）</span></h2>



<p>ユーザーに与える権限はデータベースの<strong>セキュリティ</strong>と<strong>安定性</strong>に直結する重要な要素です。適切な権限設定を行うことで以下のメリットが得られます。</p>



<ol class="wp-block-list">
<li><strong>セキュリティの向上</strong></li>



<li><strong>誤操作の防止</strong></li>



<li><strong>責任範囲の明確化</strong></li>
</ol>



<p><strong><span class="marker-red">最小権限の原則</span></strong><br>各ユーザーには業務に必要な最低限の権限のみを付与し、セキュリティリスクを最小限に抑えることが重要です。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc2">【MariaDB】root ユーザー</span></h2>



<p>インストール直後に作成されるデフォルトのルートユーザー (root)は全ての権限を持っています。通常、このユーザーが新しいユーザーを作成し権限を設しします。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc3">MariaDB 権限の付与</span></h3>



<p>作成したユーザーに権限を付与する基本的なSQL構文は以下の通りです。</p>



<pre class="wp-block-code"><code>GRANT 権限 ON データベース名.テーブル名 TO 'ユーザー名'@'ホスト';</code></pre>



<ul class="wp-block-list">
<li><strong>すべての権限を付与</strong></li>
</ul>



<pre class="wp-block-code"><code>GRANT ALL PRIVILEGES ON my_database.* TO 'example_user'@'localhost';</code></pre>



<ul class="wp-block-list">
<li><strong>特定の権限を付与</strong></li>
</ul>



<pre class="wp-block-code"><code>GRANT SELECT, INSERT ON my_database.my_table TO 'example_user'@'localhost';</code></pre>



<ul class="wp-block-list">
<li><strong>特定のデータベースのみにアクセスを許可</strong></li>
</ul>



<pre class="wp-block-code"><code>GRANT SELECT ON reports.* TO 'report_viewer'@'%';</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc4">MariaDB 権限の確認</span></h3>



<ul class="wp-block-list">
<li>以下のコマンドで、ユーザーに付与されている権限を確認できます。</li>
</ul>



<pre class="wp-block-code"><code>SHOW GRANTS FOR 'ユーザー名'@'ホスト';</code></pre>



<ul class="wp-block-list">
<li>自分の権限を確認する場合</li>
</ul>



<pre class="wp-block-code"><code>SHOW GRANTS FOR CURRENT_USER;</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc5">MariaDB 権限の取り消し</span></h3>



<ul class="wp-block-list">
<li>不要な権限は以下のコマンドで削除します</li>
</ul>



<pre class="wp-block-code"><code>REVOKE 権限 ON データベース名.テーブル名 FROM 'ユーザー名'@'ホスト';</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc6">【MariaDB】権限の種類</span></h2>



<h3 class="wp-block-heading"><span id="toc7">MariaDB ユーザー作成に必要な権限</span></h3>



<p>ユーザーを作成するには、CREATE USER 権限または SUPER 権限が必要です。</p>



<ul class="wp-block-list">
<li><strong>CREATE USER 権限</strong>
<ul class="wp-block-list">
<li>新しいユーザーを作成するための基本的な権限です。<br><br></li>
</ul>
</li>



<li><strong>SUPER 権限</strong>
<ul class="wp-block-list">
<li>データベース全体を管理できる権限です。<br>CREATE USERを含む全権限を持ちますが、運用上は特定の管理者にのみ付与します。</li>
</ul>
</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>CREATE USER 権限を付与する方法</strong><br><strong>*.*</strong>：すべてのデータベースに対する権限（ユーザー作成に対しては通常これを指定します）</p>



<pre class="wp-block-code"><code>GRANT CREATE USER ON *.* TO 'user_admin'@'localhost';</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc8">MariaDB  基本的な権限</span></h3>



<p>データベースやテーブルに対する基本的な操作を管理するための権限です。</p>



<figure class="wp-block-flexible-table-block-table"><table class=""><tbody><tr><td>№</td><td>権限名</td><td style="text-align:center">内　容</td></tr><tr><td>１</td><td>SELECT</td><td style="text-align:left">データを読み取る権限</td></tr><tr><td>２</td><td>INSERT</td><td style="text-align:left">データを挿入する権限</td></tr><tr><td>３</td><td>UPDATE</td><td style="text-align:left">データを更新する権限</td></tr><tr><td>４</td><td>DELETE</td><td style="text-align:left">データを削除する権限</td></tr><tr><td>５</td><td>CREATE</td><td style="text-align:left">新しいデータベース/テーブル/ビューなどを作成する権限</td></tr><tr><td>６</td><td>DROP</td><td style="text-align:left">インデックスを作成または削除する権限</td></tr><tr><td>７</td><td>INDEX</td><td style="text-align:left">インデックスを作成または削除する権限</td></tr><tr><td>８</td><td>ALTER</td><td style="text-align:left">テーブルの構造を変更する権限</td></tr><tr><td>９</td><td>EXECUTE</td><td style="text-align:left">ストアドプロシージャや関数を実行する権限</td></tr><tr><td>10</td><td>SHOW VIEW</td><td style="text-align:left">ビューの定義を表示する権限</td></tr><tr><td>11</td><td>CREATE VIEW</td><td style="text-align:left">ビューを作成する権限</td></tr></tbody></table></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc9">MariaDB 高度な権限</span></h3>



<p>データベースの管理やシステムレベルの操作に関連します。</p>



<figure class="wp-block-flexible-table-block-table"><table class=""><tbody><tr><td>№</td><td>権限名</td><td>内　容</td></tr><tr><td>1</td><td>CREATE USER</td><td style="text-align:left">新しいユーザーを作成する権限</td></tr><tr><td>2</td><td>DROP USER</td><td style="text-align:left">ユーザーを削除する権限</td></tr><tr><td>3</td><td>GRANT OPTION</td><td style="text-align:left">他のユーザーに権限を付与または取り消す権限</td></tr><tr><td>4</td><td>RELOAD</td><td style="text-align:left">システム変数をリロードする権限（FLUSH操作が含まれる）</td></tr><tr><td>5</td><td>PROCESS</td><td style="text-align:left">サーバーで実行中のプロセスを表示する権限</td></tr><tr><td>6</td><td>FILE</td><td style="text-align:left">サーバーのファイルに読み書きする権限</td></tr><tr><td>7</td><td>SUPER</td><td style="text-align:left">スーパーユーザー権限（すべての操作を実行可能）</td></tr><tr><td>8</td><td>REPLICATION CLIENT</td><td style="text-align:left">バイナリログやリレーログの位置を確認する権限</td></tr><tr><td>9</td><td>REPLICATION SLAVE</td><td style="text-align:left">マスターからスレーブへのデータ複製を許可する権限</td></tr><tr><td>10</td><td>SHUTDOWN</td><td style="text-align:left">サーバーを停止する権限</td></tr></tbody></table></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc10">MariaDB セキュリティ関連の権限</span></h3>



<p>セキュリティに関連する権限で、データの暗号化や認証に影響を与えるものです。</p>



<figure class="wp-block-flexible-table-block-table"><table class=""><tbody><tr><td>№</td><td>権限名</td><td>内　容</td></tr><tr><td>１</td><td>CREATE ROLE</td><td style="text-align:left">新しいロールを作成する権限</td></tr><tr><td>２</td><td>DROP ROLE</td><td style="text-align:left">ロールを削除する権限</td></tr><tr><td>３</td><td>APPLICATION_PASSWORD_ADMIN</td><td style="text-align:left">アプリケーションパスワードの管理権限</td></tr><tr><td>４</td><td>SET PASSWORD</td><td style="text-align:left">他のユーザーのパスワードを設定/変更する権限</td></tr></tbody></table></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc11">MariaDB 特定の操作に関連する権限</span></h3>



<p>特定の機能や操作に関連する権限です。</p>



<figure class="wp-block-flexible-table-block-table"><table class=""><tbody><tr><td>№</td><td>権限名</td><td>内　容</td></tr><tr><td>1</td><td>LOCK TABLES</td><td style="text-align:left">テーブルをロックする権限</td></tr><tr><td>2</td><td>REFERENCES</td><td style="text-align:left">外部キー制約を設定する権限</td></tr><tr><td>3</td><td>EVENT</td><td style="text-align:left">イベントスケジューラを管理する権限</td></tr><tr><td>4</td><td>TRIGGER</td><td style="text-align:left">トリガーを作成または削除する権限</td></tr><tr><td>5</td><td>CREATE TEMPORARY TABLES</td><td style="text-align:left">一時テーブルを作成する権限</td></tr></tbody></table></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc12">MariaDB グローバルレベルで利用可能な権限</span></h3>



<p>この権限はサーバー全体に影響を与える権限です。</p>



<figure class="wp-block-flexible-table-block-table"><table class=""><tbody><tr><td>№</td><td>権限名</td><td>内　容</td></tr><tr><td>１</td><td>ALL PRIVILEGES</td><td>すべての権限を付与（個別の権限を指定する代わりに使用する）</td></tr></tbody></table></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc13">【MariaDB】ロール</span></h2>



<p>MariaDBのロール (Role)は、ユーザーの権限管理を簡素化するための仕組みです。複数の権限をロールにまとめ、ロールをユーザーに割り当てることで権限の付与や管理を効率的に行うことができます。これは特に、多くのユーザーが異なる権限を持つような環境で便利です。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc14">MariaDB ロールの特徴</span></h3>



<ul class="wp-block-list">
<li><strong>権限のグループ化</strong>:
<ul class="wp-block-list">
<li>ロールに権限を付与し、そのロールをユーザーに割り当てることでユーザー個別に権限を管理する必要がなくなります。</li>
</ul>
</li>



<li><strong>柔軟性</strong>:
<ul class="wp-block-list">
<li>複数のロールを1人のユーザーに割り当てることが可能です。</li>



<li>ロール自体にも権限を付与したり削除したりできます。</li>
</ul>
</li>



<li><strong>有効化と無効化</strong>:
<ul class="wp-block-list">
<li>ロールをアクティブ（有効化）または非アクティブ（無効化）にすることができます。</li>
</ul>
</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc15">MariaDB ロールの作成</span></h3>



<p>新しいロールを作成するには、CREATE ROLEコマンドを使用します。</p>



<pre class="wp-block-code"><code>CREATE ROLE 'role_name';</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc16">MariaDB ロールへの権限付与</span></h3>



<p>ロールに権限を付与するには、GRANTコマンドを使用します。</p>



<pre class="wp-block-code"><code>GRANT 権限名 ON データベース名.テーブル名 TO 'role_name';</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc17">MariaDB ロールのユーザーへの割り当て</span></h3>



<p>ユーザーにロールを割り当てるには、GRANTコマンドを使用します。</p>



<pre class="wp-block-code"><code>GRANT 'role_name' TO 'username'@'host';</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc18">MariaDB ロールの有効化</span></h3>



<p>割り当てたロールを有効化するには、SET ROLEコマンドを使用します。</p>



<pre class="wp-block-code"><code>SET ROLE 'role_name';</code></pre>



<ul class="wp-block-list">
<li>複数のロールを有効化</li>
</ul>



<pre class="wp-block-code"><code>SET ROLE 'role_name1', 'role_name2';</code></pre>



<ul class="wp-block-list">
<li>すべてのロールを有効化</li>
</ul>



<pre class="wp-block-code"><code>SET ROLE ALL;</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc19">MariaDB ロールを無効化</span></h3>



<p>ＳET ROLE NONE コマンドを使用します。</p>



<pre class="wp-block-code"><code>SET ROLE NONE;</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc20">MariaDB ロールの権限確認</span></h3>



<p>現在のロールに付与されている権限の確認はＳHOW ＧRANTS コマンドを使用します。</p>



<pre class="wp-block-code"><code>SHOW GRANTS FOR 'role_name';</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc21">MariaDB ロールの削除</span></h3>



<p>ロールを削除するには、DROP ROLEコマンドを使用します。</p>



<pre class="wp-block-code"><code>DROP ROLE 'role_name';</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc22">MariaDB ロールの利用例</span></h3>



<ul class="wp-block-list">
<li><strong>データベース</strong>：company_db</li>



<li><strong>ユーザー</strong>：employeeとmanager</li>



<li><strong>要件</strong>
<ul class="wp-block-list">
<li>employeeは読み取り専用アクセスが必要。</li>



<li>managerはすべての</li>
</ul>
</li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>ロールの作成と権限の付与</strong></li>
</ul>



<pre class="wp-block-code"><code>CREATE ROLE 'read_only';
CREATE ROLE 'full_access';
GRANT SELECT ON company_db.* TO 'read_only';
GRANT ALL PRIVILEGES ON company_db.* TO 'full_access';</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>ロールの割り当て</strong></li>
</ul>



<pre class="wp-block-code"><code>GRANT 'read_only' TO 'employee'@'localhost';
GRANT 'full_access' TO 'manager'@'localhost';</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>employeeのロールの有効化</strong><br>employee接続時にロールを有効化</li>
</ul>



<pre class="wp-block-code"><code>SET ROLE 'read_only';</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>managerのロールの有効化</strong><br>manager接続時にロールを有効化</li>
</ul>



<pre class="wp-block-code"><code>SET ROLE 'full_access';</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc23">MariaDB ロールの注意事項</span></h3>



<ul class="wp-block-list">
<li><strong>ロールはデフォルトでは無効</strong>
<ul class="wp-block-list">
<li>割り当てたロールを使用するには、SET ROLEで有効化が必要です。<br></li>
</ul>
</li>



<li><strong>ロールと直接権限の競合</strong>
<ul class="wp-block-list">
<li>ユーザーに直接付与された権限とロールによる権限が競合する場合、どちらも有効になります。<br></li>
</ul>
</li>



<li><strong>最小権限の原則</strong>
<ul class="wp-block-list">
<li>セキュリティの観点から不要な権限をロールに含めないようにします。</li>
</ul>
</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc24">まとめ</span></h2>



<p>ユーザー権限やロールは、MariaDBでアクセス制御や操作範囲を効率的に管理する手段です。<br>権限はユーザーごとに細かく設定でき、ロールを利用すれば複数のユーザーに共通の権限を一括で付与・管理可能です。</p>



<p>便利な一方で、<strong><span class="marker-under-red">最小権限の原則を守り不必要な権限やロールを付与しないことが重要です</span></strong>。また、定期的に権限やロールを監査し不要な設定を削除することでセキュリティリスクを軽減できます。適切な設定により運用効率と安全性の向上を図りましょう。</p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MariaDB】ユーザー管理（作成/変更/削除 他）</title>
		<link>https://www.kemmy-it.com/2025/01/21/mariadb_userkanri/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Tue, 21 Jan 2025 11:09:51 +0000</pubDate>
				<category><![CDATA[MariaDB]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=3841</guid>

					<description><![CDATA[ユーザー管理は【MariaDB】のセキュリティと効率的な運用において重要です。本ブログでは【MariaDB】でのユーザーに対する操作を分かり易く紹介します。 目次 【MariaDB】ｒｏｏｔユーザー（管理者アカウント）【 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>ユーザー管理は【MariaDB】のセキュリティと効率的な運用において重要です。本ブログでは【MariaDB】でのユーザーに対する操作を分かり易く紹介します。</p>




  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">【MariaDB】ｒｏｏｔユーザー（管理者アカウント）</a></li><li><a href="#toc2" tabindex="0">【MariaDB】ユーザーの操作</a><ol><li><a href="#toc3" tabindex="0">ユーザーの作成</a><ol><li><a href="#toc4" tabindex="0">基本的なユーザーの作成例</a></li></ol></li><li><a href="#toc5" tabindex="0">ユーザーの削除</a><ol><li><a href="#toc6" tabindex="0">基本的なユーザーの削除例</a></li></ol></li><li><a href="#toc7" tabindex="0">ユーザーのロック・アンロック（無効化・有効化）</a><ol><li><a href="#toc8" tabindex="0">ユーザーのロック</a></li><li><a href="#toc9" tabindex="0">ユーザーのアンロック</a></li></ol></li><li><a href="#toc10" tabindex="0">ユーザー情報の確認</a></li><li><a href="#toc11" tabindex="0">ユーザー有無の確認</a></li><li><a href="#toc12" tabindex="0">パスワードの管理</a><ol><li><a href="#toc13" tabindex="0">パスワードの変更</a></li></ol></li><li><a href="#toc14" tabindex="0">ユーザー名の変更</a></li></ol></li><li><a href="#toc15" tabindex="0">【MariaDB】mariadb.sysユーザー</a><ol><li><a href="#toc16" tabindex="0">主な特徴</a></li><li><a href="#toc17" tabindex="0">使用目的</a></li></ol></li><li><a href="#toc18" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【MariaDB】ｒｏｏｔユーザー（管理者アカウント）</span></h2>



<p>インストール直後に作成されるMariDBの管理者アカウントです。すべての権限を持ち、通常はローカルホストからのみ接続可能です。</p>



<p>※インストール直後には、mariadb.sysユーザーも作成されますがこれについては後述します。</p>



<p>現在 存在するユーザーは以下のコマンドを使用して確認できます。</p>



<p><strong><span class="marker-under-red">SELECT User, Host FROM mysql.user;</span></strong></p>



<pre class="wp-block-code"><code>C:\&gt;mysql -u root -p
Enter password: ******
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 11.4.4-MariaDB-log mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB &#91;(none)]&gt; SELECT User, Host FROM mysql.user;
+-------------+-------------+
| User        | Host        |
+-------------+-------------+
| root        | 127.0.0.1   |
| root        | ::1         |
| root        | asroc-win10 |
| mariadb.sys | localhost   |
| root        | localhost   |
+-------------+-------------+
5 rows in set (0.003 sec)</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc2">【MariaDB】ユーザーの操作</span></h2>



<h3 class="wp-block-heading"><span id="toc3">ユーザーの作成</span></h3>



<p>ユーザーを作成する際の基本的なSQL構文は以下の通りです。</p>



<pre class="wp-block-code"><code>CREATE USER 'ユーザー名'@'ホスト' IDENTIFIED BY 'パスワード';</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc4">基本的なユーザーの作成例</span></h4>



<ul class="wp-block-list">
<li><strong>ローカルホストからのみアクセス可能なユーザーを作成。</strong><br>このユーザーはMariaDBがインストールされたサーバーからのみ接続可能です。</li>
</ul>



<pre class="wp-block-code"><code>CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'secure_password';</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>任意のホストからアクセス可能なユーザーを作成。</strong><br><span class="marker-under-red">@&#8217;%&#8217;は、どのホストからでも接続を許可する設定です。ただし、セキュリティリスクを伴うため注意が必要です。</span></li>
</ul>



<pre class="wp-block-code"><code>CREATE USER 'remote_user'@'%' IDENTIFIED BY 'secure_password';</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>特定のIPアドレスからのみ接続可能なユーザーを作成</strong></li>
</ul>



<pre class="wp-block-code"><code>CREATE USER 'restricted_user'@'192.168.1.100' IDENTIFIED BY 'secure_password';</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc5">ユーザーの削除</span></h3>



<p>ユーザーを削除する際の基本的なSQL構文は以下の通りで、パスワードは<strong>不要</strong>です</p>



<pre class="wp-block-code"><code>DROP USER 'ユーザー名'@'ホスト';</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc6">基本的なユーザーの削除例</span></h4>



<ul class="wp-block-list">
<li><strong>特定のホストに紐付けられたユーザーの削除</strong></li>
</ul>



<pre class="wp-block-code"><code>DROP USER 'user1'@'localhost';</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>全ホストからアクセス可能なユーザーの削除</strong></li>
</ul>



<pre class="wp-block-code"><code>DROP USER 'global_user'@'%';</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>複数のユーザーを同時に削除</strong></li>
</ul>



<pre class="wp-block-code"><code>DROP USER 'user1'@'localhost', 'user2'@'%';</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc7">ユーザーのロック・アンロック（無効化・有効化）</span></h3>



<p>ユーザーの使用を一時的に無効にしたり有効にしたりします。</p>



<h4 class="wp-block-heading"><span id="toc8">ユーザーのロック</span></h4>



<ul class="wp-block-list">
<li><strong>アカウントを無効化するには、ACCOUNT LOCKを使用します。</strong></li>
</ul>



<pre class="wp-block-code"><code>ALTER USER 'username'@'host' ACCOUNT UNLOCK;</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc9">ユーザーのアンロック</span></h4>



<ul class="wp-block-list">
<li><strong>アカウントを無効化するには、ACCOUNT UNLOCKを使用します。</strong></li>
</ul>



<pre class="wp-block-code"><code>ALTER USER 'username'@'host' ACCOUNT UNLOCK;</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc10">ユーザー情報の確認</span></h3>



<ul class="wp-block-list">
<li><strong>MariaDBに存在する全ユーザーを確認する。</strong></li>
</ul>



<pre class="wp-block-code"><code>SELECT User, Host FROM mysql.user;</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>特定ユーザーの詳細情報を確認する。</strong></li>
</ul>



<pre class="wp-block-code"><code>MariaDB &#91;(none)]&gt; SHOW GRANTS FOR 'test_user1'@'%';</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc11">ユーザー有無の確認</span></h3>



<ul class="wp-block-list">
<li><strong>特定のユーザーが存在するか否かを確認します。</strong></li>
</ul>



<pre class="wp-block-code"><code>SELECT User, Host FROM mysql.user WHERE User = 'username';</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>ユーザーが存在する場合</strong></li>
</ul>



<pre class="wp-block-code"><code>MariaDB &#91;(none)]&gt; SELECT User, Host FROM mysql.user WHERE User = 'test_user1';
+------------+------+
| User       | Host |
+------------+------+
| test_user1 | %    |
+------------+------+</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>ユーザーが存在しない場合</strong></li>
</ul>



<pre class="wp-block-code"><code>MariaDB &#91;(none)]&gt; SELECT User, Host FROM mysql.user WHERE User = 'username';
Empty set (0.001 sec)</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc12">パスワードの管理</span></h3>



<h4 class="wp-block-heading"><span id="toc13">パスワードの変更</span></h4>



<ul class="wp-block-list">
<li><strong>既存ユーザーのパスワードを変更するには、ALTER USER又はSET PASSWORD文を使用します。</strong></li>
</ul>



<pre class="wp-block-code"><code>ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';</code></pre>



<pre class="wp-block-code"><code>SET PASSWORD FOR 'username'@'host' = PASSWORD('new_password');</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>パスワード無しに変更</strong></li>
</ul>



<pre class="wp-block-code"><code>ALTER USER 'username'@'host' IDENTIFIED BY '';</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc14">ユーザー名の変更</span></h3>



<p>MariaDBでは直接ユーザー名を変更することはできませんが次の手順で名前変更が可能です。</p>



<div class="wp-block-group is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list">
<li><strong>新しいユーザーを作成</strong></li>
</ul>
</div>



<pre class="wp-block-code"><code>CREATE USER 'new_username'@'host' IDENTIFIED BY 'password';</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>既存の権限をコピー</strong></li>
</ul>



<pre class="wp-block-code"><code>GRANT ALL PRIVILEGES ON *.* TO 'new_username'@'host';</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>古いユーザーを削除</strong></li>
</ul>



<pre class="wp-block-code"><code>DROP USER 'old_username'@'host';</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc15">【MariaDB】mariadb.sysユーザー</span></h2>



<p>MariaDB 10.4以降で追加された<strong>システムユーザー</strong>です。このユーザーは、主に内部的な管理目的で使用されます。</p>



<h3 class="wp-block-heading"><span id="toc16">主な特徴</span></h3>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ol class="wp-block-list">
<li><strong>内部管理用ユーザー</strong>
<ul class="wp-block-list">
<li>MariaDBの内部的な操作やパフォーマンススキーマ関連のクエリに使用されます。</li>



<li>管理者や一般ユーザーが直接使用することは想定されていません。<br><br></li>
</ul>
</li>



<li><strong>権限</strong>
<ul class="wp-block-list">
<li>MariaDBが特定の内部処理で必要とする最低限の権限が付与されています。<br><br></li>
</ul>
</li>



<li><strong>ホストの制限</strong>
<ul class="wp-block-list">
<li>Host列にlocalhostが設定されており、リモート接続は許可されていません。<br><br></li>
</ul>
</li>



<li><strong>セキュリティ</strong>
<ul class="wp-block-list">
<li>MariaDBの内部的な処理以外には使用されないため、通常、追加のセキュリティ対策は不要です。<br><br></li>
</ul>
</li>
</ol>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc17">使用目的</span></h3>



<ol class="wp-block-list">
<li><strong>パフォーマンススキーマや情報スキーマのクエリ実行</strong>
<ul class="wp-block-list">
<li>MariaDBの内部でパフォーマンススキーマや情報スキーマに関連するクエリを実行するために使用されます。<br><br></li>
</ul>
</li>



<li><strong>メンテナンス操作のサポート</strong>
<ul class="wp-block-list">
<li>特定の内部プロセスや自動メンテナンスタスクで必要な操作を実行するために利用されます。</li>
</ul>
</li>
</ol>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc18">まとめ</span></h2>



<p>ユーザー管理においては、最小権限の原則や適切な認証設定、不要なユーザーや権限の削除が重要です。また、定期的な監査やセキュリティ対策を実施し、データベース全体の保護を確実にすることが求められます。</p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MariaDB】設定ファイル my.ini を最適化しよう！</title>
		<link>https://www.kemmy-it.com/2025/01/18/mariadb_myini/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Sat, 18 Jan 2025 11:25:02 +0000</pubDate>
				<category><![CDATA[MariaDB]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=3763</guid>

					<description><![CDATA[MariaDBはMySQLから分岐したオープンソースのリレーショナルデータベース管理システムで、広く利用されています。 本ブログでは、MariaDBのWindows環境における設定ファイル（my.ini）について、設定例 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>MariaDBはMySQLから分岐したオープンソースのリレーショナルデータベース管理システムで、広く利用されています。</p>



<p>本ブログでは、MariaDBのWindows環境における設定ファイル（my.ini）について、設定例を元に各パラメータの内容や利用シーン、推奨設定を紹介します。</p>




  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">MariaDBの設定ファイルを最適化する理由</a></li><li><a href="#toc2" tabindex="0">設定ファイルの例</a><ol><li><a href="#toc3" tabindex="0">[mysqld]セクションの考察</a><ol><li><a href="#toc4" tabindex="0">基本設定</a></li><li><a href="#toc5" tabindex="0">接続とスレッド管理</a></li><li><a href="#toc6" tabindex="0">パフォーマンス設定</a></li><li><a href="#toc7" tabindex="0">ストレージ管理</a></li><li><a href="#toc8" tabindex="0">ログ設定</a></li></ol></li><li><a href="#toc9" tabindex="0">[client]セクションの紹介</a><ol><li><a href="#toc10" tabindex="0">接続設定</a></li><li><a href="#toc11" tabindex="0">クエリと接続の最大パケットサイズ</a></li><li><a href="#toc12" tabindex="0">クエリの簡易化</a></li><li><a href="#toc13" tabindex="0">プラグインディレクトリ</a></li></ol></li></ol></li><li><a href="#toc14" tabindex="0">その他の主な[セクション]</a><ol><li><a href="#toc15" tabindex="0">[mariadbd] セクション</a></li><li><a href="#toc16" tabindex="0">[mariadb] セクション</a></li><li><a href="#toc17" tabindex="0">[server] セクション</a></li></ol></li><li><a href="#toc18" tabindex="0">MariaDB設定の最適化のポイント</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">MariaDBの設定ファイルを最適化する理由</span></h2>



<p>MariaDBの設定ファイルは、データベースの動作を細かく制御するために使用されます。</p>



<p>デフォルトでは、通常C:\Program Files\MariaDB XX\data\my.iniに配置されており、設定ファイルの形式はセクション（[セクション名]）とキーと値のペア（キー=値）で構成されます。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>MariaDBの設定ファイルを最適化する理由は以下の通りです。</strong></p>



<ul class="wp-block-list">
<li><strong>パフォーマンス向上</strong></li>



<li><strong>スケーラビリティ強化</strong></li>



<li><strong>エラー管理の向上</strong></li>



<li><strong>リソースの効率化</strong></li>



<li><strong>安定性の向上</strong></li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc2">設定ファイルの例</span></h2>



<p>Windows Server上でMariaDBを効率的に運用するための[mysqld]セクションと[client]セクションの設定例を紹介します。<br></p>



<p>下記はMariaDB11.4を使用する条件で、メモリ16GB・接続人数200人・レコード件数100万件、エラー管理・性能を考慮した設定例です。<br></p>



<p>下記の設定例を元に内容を紹介していきます。</p>



<ul class="wp-block-list">
<li>[mysqld]セクションの例</li>
</ul>



<pre class="wp-block-code"><code>&#91;mysqld]
# 基本設定
port = 3306
bind_address = 0.0.0.0
datadir = "C:\Program Files\MariaDB 11.4\data"
socket = "C:\Program Files\MariaDB 11.4\data\mysql.sock"
log_error = "C:\Program Files\MariaDB 11.4\log\mariadb_error.log"

# 接続とスレッド管理
max_connections = 200
thread_cache_size = 64
thread_stack = 256K

# パフォーマンス設定
innodb_buffer_pool_size = 8G
innodb_log_file_size = 1G
innodb_flush_log_at_trx_commit = 1
innodb_io_capacity = 2000
innodb_lock_wait_timeout = 50

# ストレージ管理
tmp_table_size = 128M
max_heap_table_size = 128M
table_open_cache = 4000
query_cache_size = 256M
max_allowed_packet = 64M

# ログ設定
slow_query_log = 1
slow_query_log_file = "C:\Program Files\MariaDB 11.4\log\slow_query.log"
long_query_time = 1
general_log = 0
</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>[client]セクションの設定例</li>
</ul>



<pre class="wp-block-code"><code>&#91;client]
# 接続設定
port = 3306
socket = "C:\Program Files\MariaDB 11.4\data\mysql.sock"

# クエリと接続の最大パケットサイズ
max_allowed_packet = 64M

# クエリの簡易化
default-character-set = utf8mb4

#プラグインディレクトリ
plugin-dir="C:\Program Files\MariaDB 11.4/lib/plugin"
</code></pre>



<h3 class="wp-block-heading"><span id="toc3">[mysqld]セクションの考察</span></h3>



<ul class="wp-block-list">
<li><strong>[mysql]セクションとは</strong>
<ul class="wp-block-list">
<li>MariaDBサーバープロセスの動作を制御するための設定を記述するセクション。</li>
</ul>
</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc4">基本設定</span></h4>



<ol class="wp-block-list">
<li><strong>port = 3306</strong>（デフォルト）<br>MariaDBがリッスンするポート番号。一般的にデフォルトの3306を使用。ただし、セキュリティ上の理由で変更も可能。<br><br><br></li>



<li><strong>bind_address = 0.0.0.0</strong>（デフォルト：127.0.0.1）<br>接続を受け付けるIPアドレスを指定する。0.0.0.0はすべてのIPから接続を許可するがァイアウォールでIPを制限して安全性を確保します。<br><br>bind_address = 0.0.0.0は、複数クライアントや外部接続が必要な場合に便利であり、適切なセキュリティ対策を講じれば安全に運用できます。<strong><span class="marker-under-red">ただし、セキュリティ要件が厳しい場合は、127.0.0.1または特定のIPアドレスに制限する方が安全です。</span></strong><br><br><br></li>



<li><strong>datadir = &#8220;C:\Program Files\MariaDB 11.4\data&#8221;</strong>（デフォルト）<br>データベースのデータを保存するディレクトリのパスを指定します。データ容量の関係やデータをシステムを切り離して管理したい場合等は、他のディレクトリを指定します。<br><br><br></li>



<li><strong>socket = &#8220;C:/ProgramData/MariaDB/mysql.sock&#8221;</strong><br><strong>名前付きパイプ</strong>として利用されており、ローカルマシン内でのデータ転送が軽減されます。<br>例えば、クライアントとMariaDBサーバーが同一ホスト上に存在する場合、この方法が最適です。</li>
</ol>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc5">接続とスレッド管理</span></h4>



<ol class="wp-block-list">
<li><strong>max_connections = 200</strong><br>条件通り同時接続の上限を200としています。但し、200以上に余裕を持たせる場合もあります。<br><br><br></li>



<li><strong>thread_cache_size = 64</strong><br>クライアントがMariaDBに接続するたびに、サーバーはスレッドを生成します。接続が終了したスレッドをキャッシュに保存し再利用することでスレッドの生成コストを削減します。<br>一般的な推奨値は、<strong>最大接続数（max_connections）の25%から50%程度</strong>です。<br><br><br></li>



<li><strong>thread_stack = 256K</strong><br>各スレッドに割り当てるスタックメモリのサイズです。スタックは、関数呼び出しやローカル変数の保存に使用されるメモリ領域です。<br><br>thread_stack の値は、MariaDBの運用環境やクエリの複雑さによって異なりまが標準的な設定は256K または 512Kです。</li>
</ol>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc6">パフォーマンス設定</span></h4>



<ol class="wp-block-list">
<li><strong>innodb_buffer_pool_size = 8G</strong><br>innoDBストレージエンジンが使用する<strong>バッファプールのサイズ</strong>です。テーブルのデータやインデックスがバッファプールにキャッシュされ、ディスクI/Oを減らしてデータベースのパフォーマンスを向上しています。<br><br>innodb_buffer_pool_size の値は、サーバーの利用状況やシステムのメモリ容量に基づいて設定しますが、推奨値はサーバー全体のメモリ容量の <strong>50% ～ 75%</strong> をです。<br><br><br></li>



<li><strong>innodb_log_file_size = 1G</strong><br>InnoDB ストレージエンジンで使用される<strong>redoログファイルの1つあたりのサイズ</strong>を指定します。Redoログはトランザクション中のデータ変更を記録し、クラッシュ時にRedoログを使ってデータの一貫性を確保してトランザクションをリカバリします。<br><br>一般的には、バッファプールサイズ（innodb_buffer_pool_size）の25%～50%の範囲が推奨されます。<br><br><br></li>



<li><strong>innodb_flush_log_at_trx_commit = 1</strong><br>トランザクションのコミット時にRedoログ（トランザクションログ）をディスクに書き込むタイミングを制御する設定です。<br><strong>推奨値は１（デフォルト）で、各トランザクションのコミット時に必ずログをディスクにフラッシュします。</strong><br><br><br></li>



<li><strong>innodb_io_capacity = 2000</strong><br>InnoDB ストレージエンジンのバックグラウンドタスクが1秒間に実行するI/O操作の上限を設定します。値が低いと処理の遅延やスループットの低下を引き起こす場合があります。<br><br>適切な値は、使用しているストレージデバイスの性能（I/Oスループット）に大きく依存しますが参考値は以下の通りです。<br>
<ul class="wp-block-list">
<li><strong>HDD（ハードディスクドライブ）</strong>
<ul class="wp-block-list">
<li><strong>100～200</strong></li>
</ul>
</li>



<li><strong>SSD（ソリッドステートドライブ）</strong>
<ul class="wp-block-list">
<li><strong>2000～10000</strong></li>
</ul>
</li>



<li><strong>NVMe SSD</strong>
<ul class="wp-block-list">
<li>推奨値: <strong>10000～50000</strong><br><br><br></li>
</ul>
</li>
</ul>
</li>



<li><strong>innodb_lock_wait_timeout = 50</strong>（デフォルト）<br>InnoDB ストレージエンジンで、<strong>トランザクションがロックを獲得するために待機する最大秒数</strong>を指定します。デッドロックが発生する状況を未然に防ぎ、システム全体のスループットを確保します。<br><br>
<ul class="wp-block-list">
<li><strong>設定の考え方</strong><br>
<ul class="wp-block-list">
<li><strong>低い値（例: 10～30秒）</strong>
<ul class="wp-block-list">
<li><strong>利点</strong>：ロックが長時間保持される状況を早く検出でき、スループットを改善します。</li>



<li><strong>欠点</strong>:：一時的なロック競合が頻発する環境では、タイムアウトが多発してアプリケーション側でのリトライ処理が増える可能性があります。<br></li>
</ul>
</li>



<li><strong>高い値（例: 60～300秒以上）</strong>
<ul class="wp-block-list">
<li><strong>利点</strong>：複雑なクエリやバッチ処理がロック競合を解消するまで待機できます。</li>



<li><strong>欠点</strong>：ロック保持が長引くと、他のトランザクションに悪影響を及ぼす可能性があります。</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ol>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc7">ストレージ管理</span></h4>



<ol class="wp-block-list">
<li><strong>tmp_table_size = 128M</strong><br>クエリ実行中に一時的なデータを格納するために作成されるメモリ内テーブルの最大値を指定します。この値を超えた場合一時テーブルはディスク上に作成されため、パフォーマンスに影響を与える可能性があります。<br>
<ul class="wp-block-list">
<li><strong>設定値の考え方</strong><br>
<ul class="wp-block-list">
<li><strong>小規模なシステム</strong>（8GB以下のメモリ）
<ul class="wp-block-list">
<li>推奨値: 16MB ～ 32MB</li>
</ul>
</li>



<li><strong>中規模なシステム</strong>（16GB以上のメモリ）
<ul class="wp-block-list">
<li>推奨値: 64MB ～ 256MB</li>
</ul>
</li>



<li><strong>大規模なシステム</strong>（32GB以上のメモリ）
<ul class="wp-block-list">
<li>推奨値: 256MB ～ 1GB<br><br><br></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>



<li><strong>max_heap_table_size = 128M</strong><br><strong>メモリ内で作成されるHEAP（MEMORY）ストレージエンジンのテーブルの最大サイズ</strong>を定義するパラメータです。この値を超えると新しいデータを追加できなくなりエラーが発生します。<br>
<ul class="wp-block-list">
<li><strong>設定値の考え方</strong><br>
<ul class="wp-block-list">
<li><strong>小規模システム（メモリ 8GB以下）</strong>
<ul class="wp-block-list">
<li>32MB ～ 64MB</li>
</ul>
</li>



<li><strong>中規模システム（メモリ 16GB以上）</strong>
<ul class="wp-block-list">
<li>128MB ～ 256MB</li>
</ul>
</li>



<li><strong>大規模システム（メモリ 32GB以上）</strong>
<ul class="wp-block-list">
<li>256MB ～ 512MB<br><br><br></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>



<li><strong>table_open_cache = 4000</strong>（デフォルト）<br>サーバー全体で同時にキャッシュできる「開いているテーブル」の最大数を指定します。このキャッシュは、テーブルを効率的に再利用することでディスクアクセスを減らし、パフォーマンスを向上させます。<br>
<ul class="wp-block-list">
<li><strong>設定の考え方</strong><br>
<ul class="wp-block-list">
<li><strong>小規模システム</strong>（10～50ユーザー）
<ul class="wp-block-list">
<li>推奨値: 1000 ～ 4000</li>
</ul>
</li>



<li><strong>中規模システム</strong>（50～200ユーザー）
<ul class="wp-block-list">
<li>推奨値: 4000 ～ 8000</li>
</ul>
</li>



<li><strong>大規模システム</strong>（200ユーザー以上）
<ul class="wp-block-list">
<li>8000 ～ 20000<br><br><br></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>



<li><strong>query_cache_size = </strong>256M（デフォルト：0）<br>クエリ結果キャッシュするサイズを指定します。この値が設定されていると、クエリ結果が一時的にキャッシュされ、同じクエリが繰り返し実行された場合に、再計算する必要がなくなります。<br>
<ul class="wp-block-list">
<li><strong>設定値の考え方</strong><br>
<ul class="wp-block-list">
<li><strong>小規模システム</strong>
<ul class="wp-block-list">
<li>32M ～ 256M</li>
</ul>
</li>



<li><strong>中規模システム</strong>
<ul class="wp-block-list">
<li>256M ～ 512M</li>
</ul>
</li>



<li><strong>大規模システム</strong>
<ul class="wp-block-list">
<li>1G ～ 2G 以上<br><br><br></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>



<li><strong>max_allowed_packet = 64M</strong>（デフォルト：16M）<br><strong>データの最大送信サイズ</strong>を制御するためのパラメータです。この値が設定されていると、クライアントからサーバーに送信できる最大データサイズを制限します。<br>
<ul class="wp-block-list">
<li><strong>設定値の考え方</strong><br>
<ul class="wp-block-list">
<li><strong>小規模システム</strong>:
<ul class="wp-block-list">
<li>16MB ～ 64MB</li>
</ul>
</li>



<li><strong>中規模システム</strong>:
<ul class="wp-block-list">
<li>64MB ～ 256MB</li>
</ul>
</li>



<li><strong>大規模システム</strong>
<ul class="wp-block-list">
<li>256MB ～ 1024MB 以上</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ol>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc8">ログ設定</span></h4>



<ol class="wp-block-list">
<li><strong>slow_query_log = 1</strong>（デフォルト：0）<br><strong>実行時間が遅いクエリ</strong>をログに記録するか否かを設定です。この設定を有効にすると特定のクエリの実行時間が閾値を超えた場合に、ログファイルに記録されます。<br><br><br></li>



<li><strong>slow_query_log_file = &#8220;C:\Program Files\MariaDB 11.4\log\slow_query.log&#8221;</strong><br>実行時間が遅いクエリが記録されるログファイルの場所を指定します。<br><br><br></li>



<li><strong>long_query_time = 1</strong><br>ログに記録する遅いクエリ実行時間のしきい値を秒数で指定します。監視、トラブルシューティング、パフォーマンス最適化のために使用されます。<br>
<ul class="wp-block-list">
<li><strong>設定値の考え方</strong><br>
<ul class="wp-block-list">
<li><strong>小規模システム</strong>:
<ul class="wp-block-list">
<li>OFF ～ 1 秒</li>
</ul>
</li>



<li><strong>中規模システム</strong>:
<ul class="wp-block-list">
<li>1 ～ 10 秒</li>
</ul>
</li>



<li><strong>大規模システム</strong>
<ul class="wp-block-list">
<li>10 秒以上<br><br><br></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>



<li><strong>general_log = 0</strong>（デフォルト）<br><strong>すべてのクエリをログに記録</strong>するか否かを設定します。この設定を有効にすると、サーバー上で実行されるすべてのクエリ（SELECT、INSERT、UPDATE、DELETEなど）がログファイルに記録されます。<br>エラー発生時や特定のクエリの詳細情報を収集する際に使用されます。</li>
</ol>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc9">[client]セクションの紹介</span></h3>



<h4 class="wp-block-heading"><span id="toc10">接続設定</span></h4>



<ol class="wp-block-list">
<li><strong>port = 3306</strong><br>複数のMariaDBサーバーがある場合異なるポートを使用するケースがあるため、接続先のportを明確にする為記述しています。<br><br><br></li>



<li><strong>socket = &#8220;C:\Program Files\MariaDB 11.4\data\mysql.sock&#8221;</strong><br><strong>Windows サーバー</strong> など、リモートアクセスが少ない環境では、ネットワークのオーバーヘッドを減らすためにソケット接続が使用されます。socketを指定する事により、クライアントがローカルソケットを通じてMariaDBサーバーに接続するように指示します。<br></li>
</ol>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc11">クエリと接続の最大パケットサイズ</span></h4>



<ol class="wp-block-list">
<li><strong>max_allowed_packet = 64M</strong>（デフォルト推奨値）<br>1つのネットワークトランザクションやクエリ処理中にサーバーが受信できる最大のデータサイズ（バイト数）を指定します。<br>大量のデータを一度に送信する際に、クライアントが制限内に収まることで通信の安定性が向上し、エラーやデータ損失、パフォーマンス低下を防ぐ効果があります。<br></li>
</ol>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc12">クエリの簡易化</span></h4>



<ul class="wp-block-list">
<li><strong>default-character-set = utf8mb4</strong><br>クライアントがMariaDBサーバーに接続した際に使用する文字セットを指定します。utf8mb4 は、多言語データ（例えば、日本語、韓国語、絵文字など）の取り扱いに対応しており、UTF-8 よりも多くの文字をサポートしています。</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc13">プラグインディレクトリ</span></h4>



<ul class="wp-block-list">
<li><strong>plugin-dir=&#8221;C:\Program Files\MariaDB 11.4/lib/plugin&#8221;</strong><br>MariaDBサーバーがプラグインファイルを探すディレクトリを指定します。設定されたディレクトリ内にプラグインのバイナリファイル（通常は .dll や .so ファイル）が格納されており、サーバーはそのファイルをロードします。</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc14">その他の主な[セクション]</span></h2>



<h3 class="wp-block-heading"><span id="toc15">[mariadbd] セクション</span></h3>



<ul class="wp-block-list">
<li><strong>用途</strong>
<ul class="wp-block-list">
<li>MariaDB 10.5以降で追加されたセクションで、MariaDB専用のサーバープロセス（mariadbd）を設定する。<br><br></li>
</ul>
</li>



<li><strong>特徴</strong>
<ul class="wp-block-list">
<li>MariaDB専用のセクションであり、MySQLでは無視される。<br><br></li>
</ul>
</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc16">[mariadb] セクション</span></h3>



<ul class="wp-block-list">
<li><strong>用途</strong>
<ul class="wp-block-list">
<li>MariaDB全体に適用される汎用設定で、特定のコンポーネント（クライアントやサーバー）に依存しない、MariaDB専用の設定を記述する。<br><br></li>
</ul>
</li>



<li><strong>特徴</strong>
<ul class="wp-block-list">
<li>MariaDBの拡張機能やプラグインに関連した設定を行うのに適している。<br><br></li>
</ul>
</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc17">[server] セクション</span></h3>



<ul class="wp-block-list">
<li><strong>用途</strong>
<ul class="wp-block-list">
<li>MariaDBやMySQLのサーバー共通設定。特定のプロセスセクション（[mysqld]や[mariadbd]）に依存せず、広く適用される。<br><br></li>
</ul>
</li>



<li>特徴
<ul class="wp-block-list">
<li>MariaDBとMySQLの両方で使用可能。<br><br></li>
</ul>
</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc18">MariaDB設定の最適化のポイント</span></h2>



<ol start="1" class="wp-block-list">
<li><strong>利用状況に応じた調整</strong><br>使用するアプリケーションの特性に合わせてパラメータを設定します。<br><br></li>



<li><strong>リソースの有効活用</strong><br>メモリやディスクI/Oを効率的に活用するため、innodb_buffer_pool_sizeやtmp_table_sizeを適切に設定。<br><br></li>



<li><strong>セキュリティ</strong><br>本番環境ではbind-addressを適切に設定し、不要なリモートアクセスを防ぎます。<br><br></li>
</ol>



<p></p>



<p></p>



<p></p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MariaDB】MySQLからMariaDBへの移行方法</title>
		<link>https://www.kemmy-it.com/2025/01/12/mariadb_ikou-2/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Sun, 12 Jan 2025 06:19:59 +0000</pubDate>
				<category><![CDATA[MariaDB]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=3666</guid>

					<description><![CDATA[目次 MariaDBとMySQLの関係MySQLからMariaDBへ移行する利点MySQLからMariaDBへの移行環境MySQLからMariaDBへの移行方法MySQL設定情報の確認MySQL ユーザーデータベースのバ [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-14" checked><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">MariaDBとMySQLの関係</a></li><li><a href="#toc2" tabindex="0">MySQLからMariaDBへ移行する利点</a></li><li><a href="#toc3" tabindex="0">MySQLからMariaDBへの移行環境</a></li><li><a href="#toc4" tabindex="0">MySQLからMariaDBへの移行方法</a><ol><li><a href="#toc5" tabindex="0">MySQL設定情報の確認</a></li><li><a href="#toc6" tabindex="0">MySQL ユーザーデータベースのバックアップ</a><ol><li><a href="#toc7" tabindex="0">ＭySQL 文字セットと照合順序のデファオルト値確認方法</a></li><li><a href="#toc8" tabindex="0">バックアップデータの修正</a></li></ol></li><li><a href="#toc9" tabindex="0">MariaDBのインストール</a></li><li><a href="#toc10" tabindex="0">ＭyＳQLバックアップデータのリストア</a><ol><li><a href="#toc11" tabindex="0">リストア結果の確認</a></li></ol></li><li><a href="#toc12" tabindex="0">【1】SQLモード（sql_mode）の設定</a><ol><ol><li><a href="#toc13" tabindex="0">SQLモード（sql_mode）が異なる事によって発生する問題</a></li><li><a href="#toc14" tabindex="0">SQLモード（sql_mode）の確認方法</a></li><li><a href="#toc15" tabindex="0">SQLモード（sql_mode）</a></li><li><a href="#toc16" tabindex="0">SQLモード（sql_mode）設定方法</a></li></ol></li></ol></li><li><a href="#toc17" tabindex="0">【２】使用しているストレージエンジンの違い</a><ol><ol><li><a href="#toc18" tabindex="0">ストレージエンジンが異なる事によって発生する問題</a></li><li><a href="#toc19" tabindex="0">ストレージエンジンの確認方法</a></li><li><a href="#toc20" tabindex="0">MySQLのストレージエンジンがMariaDBでサポートされていない場合</a></li></ol></li></ol></li><li><a href="#toc21" tabindex="0">【３】gtid_mode（GTIDの使用）</a><ol><li><a href="#toc22" tabindex="0">gtid_modeの設定が異なる事によって発生する問題</a></li></ol></li><li><a href="#toc23" tabindex="0">【４】ユーザー情報の取得と設定</a><ol><li><a href="#toc24" tabindex="0">MySQLでのユーザー情報の取得</a></li><li><a href="#toc25" tabindex="0">MariaDBでのユーザー追加と権限の設定</a></li></ol></li><li><a href="#toc26" tabindex="0">【５】設定ファイルの確認</a></li><li><a href="#toc27" tabindex="0">十分なテストを実施する</a></li></ol></li><li><a href="#toc28" tabindex="0">まとめ：移行を成功させるために</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">MariaDBとMySQLの関係</span></h2>



<p>MariaDBはMySQLからフォーク（分岐）したオープンソースのデータベース管理システム（RDBMS）です。</p>



<p>MySQLがオラクル（Oracle Corporation）に買収された後、MySQLの創設者がMySQLの<strong><span class="marker-under-red">オープン性を守るために作られたデータベース</span></strong>です。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc2">MySQLからMariaDBへ移行する利点</span></h2>



<ol class="wp-block-list">
<li><strong>オープンソースの完全性</strong><br>GPLライセンスに基づく完全なオープンソースです。商用ライセンスに依存しません。<br><br></li>



<li><strong>高速なパフォーマンス</strong><br>特定のクエリやストレージエンジンでMySQLよりも高速な処理が可能です（例: AriaやTokuDB）。<br><br></li>



<li><strong>拡張機能</strong><br>新しい機能が追加されています（例: 仮想列、JSON対応の拡張、分散SQL機能など）。<br><br></li>



<li><strong>より多くのストレージエンジン</strong><br>MariaDBは多様なストレージエンジン（例: Aria, TokuDB, ColumnStoreなど）をサポートしています。</li>
</ol>



<p>以上の様にオープンソース性/拡張性/パフォーマンス/互換性の観点で優位性がある点がメリットです。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc3">MySQLからMariaDBへの移行環境</span></h2>



<ol class="wp-block-list">
<li><strong>OS</strong><br>Windows 10 Pro  22H2</li>



<li><strong>Mysql</strong><br>Server version: 8.0.40</li>



<li><strong>MariaDB</strong><br>Server version: 11.4.4-MariaDB</li>
</ol>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc4">MySQLからMariaDBへの移行方法</span></h2>



<p><strong><span class="marker-under-red">本ブログではユーザーデータベースを移行しシステムデータベースはMariaDBを使用します。</span></strong></p>



<ul class="wp-block-list">
<li>システムデータベースも移行しようとしたのですが、私の場合、Mysqlのdumpファイル内に不具合があったり、MariaDBがサポートしていない部分が有ったして、リストア時にエラーが散発しました。その為、ユーザーデータのみの移行方法を紹介します。</li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc5">MySQL設定情報の確認</span></h3>



<p>MySQLの以下の項目の内容を確認しておきます。<strong><span class="marker-under-red">確認の方法は以降</span><span class="marker-under-red">で紹介します</span><span class="marker-under-red">。</span></strong></p>



<ol class="wp-block-list">
<li><strong>SQLモード（sql_mode）の設定</strong></li>



<li><strong>使用しているストレージエンジン</strong></li>



<li><strong>gtid_mode（GTIDの使用）</strong></li>



<li><strong>ユーザー情報の取得 &#8212;&#8211; 今回は（MariaDB）で再作成するので権限等詳細に調査して下さい</strong></li>



<li><strong>設定ファイルの確認と移行</strong></li>
</ol>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc6">MySQL ユーザーデータベースのバックアップ</span></h3>



<p>今回はユーザー情報や権限等は新規に作成するつもりなので、<strong><span class="marker-under-red">ユーザーデータベース<strong><span class="marker-under-red">とストアドプロシージャ、イベント等をバックアップします。</span></strong></span></strong><br><br>但し、移行の失敗に備えてMySQLの全てのバックアップも取得しておきます。</p>



<pre class="wp-block-code"><code>C:\&gt;mysql --version
mysql  Ver 8.0.40 for Win64 on x86_64 (MySQL Community Server - GPL)

C:\&gt;mysqldump --version
mysqldump  Ver 8.0.40 for Win64 on x86_64 (MySQL Community Server - GPL)

-- ユーザーデータベースのバックアップ
C:\&gt;mysqldump -u root -p --databases <strong><span class="marker-under-red">testdb</span></strong> --routines --events --triggers --single-transaction --complete-insert <strong><span class="marker-under-red">--column-statistics=0</span></strong> <strong><span class="marker-under-red">--set-gtid-purged=OF</span></strong>F --default-character-set=utf8mb4 &gt; C:\Users\testuser\bkup\backup.sql
Enter password: ******

-- 全データベースのバックアップ
C:\&gt;mysqldump -u root -p --all-databases --routines --events --triggers --single-transaction --complete-insert <strong><span class="marker-under-red">--column-statistics=0</span></strong> <strong><span class="marker-under-red">--set-gtid-purged=OF</span></strong>F --default-character-set=utf8mb4 &gt; C:\Users\testuser\bkup\backup_all.sql</code></pre>



<ol class="wp-block-list">
<li><strong>&#8211;set-gtid-purged=OFF</strong><br>GTIDはレプリケーションの管理を簡単にするために使用されます。MariaDBとは完全な互換性は無い為、レプリケーションを使用していてもここではMySQLのGTID情報はバックアップに含めていません。<br><br></li>



<li><strong>&#8211;column-statistics=0</strong><br>ServerもmysqldumpもVer. 8.0 なので<strong>カラム統計情報</strong>（column statistics）はサポートされている筈ですが、警告メッセージ（Warning: column statistics not supported by the server.）が表示されたので表示しないようにしました。　</li>
</ol>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc7">ＭySQL 文字セットと照合順序のデファオルト値確認方法</span></h4>



<p>下記コマンドで確認しておきます。</p>



<pre class="wp-block-code"><code>mysql&gt; SHOW VARIABLES LIKE 'character_set%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | cp932                                                   |
| character_set_connection | cp932                                                   |
| character_set_database   | utf8mb4                                                 |
| character_set_filesystem | binary                                                  |
| character_set_results    | cp932                                                   |
| character_set_server     | utf8mb4                                                 |
| character_set_system     | utf8mb3                                                 |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 8.0\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set, 1 warning (0.00 sec)

mysql&gt; SHOW VARIABLES LIKE 'collation%';
+----------------------+--------------------+
| Variable_name        | Value              |
+----------------------+--------------------+
| collation_connection | cp932_japanese_ci  |
| collation_database   | utf8mb4_0900_ai_ci |
| collation_server     | utf8mb4_0900_ai_ci |
+----------------------+--------------------+
3 rows in set, 1 warning (0.01 sec)

mysql&gt;</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc8">バックアップデータの修正</span></h4>



<ol class="wp-block-list">
<li><strong>文字セットと照合順序のデファオルト値確認方法</strong><br>ＭySQLのサーバーでは「utf8mb4_0900_ai_ci」が使用されています。「utf8mb4_0900_ai_ci」はMariaDBではサポートされていないので、バックアップデータ内の<strong><span class="marker-under-red">全てのutf8mb4_0900_ai_ciをutf8mb4_general_ciに変更</span></strong>します。</li>
</ol>



<ul class="wp-block-list">
<li>例）変更前</li>
</ul>



<pre class="wp-block-code"><code>CREATE DATABASE /*!32312 IF NOT EXISTS*/ `testdb` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE <strong><span class="marker-under-red">utf8mb4_0900_ai_ci</span></strong> */ /*!80016 DEFAULT ENCRYPTION='N' */;</code></pre>



<ul class="wp-block-list">
<li>例）変更後</li>
</ul>



<pre class="wp-block-code"><code>CREATE DATABASE /*!32312 IF NOT EXISTS*/ `testdb` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE <strong><span class="marker-under-red">utf8mb4_general_ci</span></strong> */ /*!80016 DEFAULT ENCRYPTION='N' */;</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc9">MariaDBのインストール</span></h3>



<p>MySQL（本番環境）が動作しているサーバーとは別の機器に推奨するMariaDBのバージョンをインストールします。インストール方法は下記ブログを参考下さい。</p>



<p>【参考ブログ】：<a href="https://www.kemmy-it.com/2024/12/30/mariadb_install/">MariaDBのインストール</a></p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc10">ＭyＳQLバックアップデータのリストア</span></h3>



<p>リストア先のデータベースを作成します。</p>



<pre class="wp-block-code"><code>MariaDB &#91;(none)]&gt; create database testdb;
Query OK, 1 row affected (0.010 sec)

MariaDB &#91;(none)]&gt;</code></pre>



<p>mysqlコマンドを使用して、バックアップファイルを指定したデータベースにリストアします。</p>



<pre class="wp-block-code"><code>C:\&gt;mysql -u root -p testdb &lt; C:\Users\Cool_Kabachan\bkup\backup.sql
Enter password: ******</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc11">リストア結果の確認</span></h4>



<p>下記の内容を確認するとデータベースは正しくリストアされています。</p>



<pre class="wp-block-code"><code>MariaDB &#91;testdb]&gt; show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
+--------------------+
5 rows in set (0.003 sec)

MariaDB &#91;testdb]&gt; use testdb
Database changed
MariaDB &#91;testdb]&gt; show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| users            |
+------------------+
1 row in set (0.001 sec)

MariaDB &#91;testdb]&gt; select * from users;
+----+--------------+--------------------------+
| id | username     | email                    |
+----+--------------+--------------------------+
|  1 | john_doe     | john.doe@example.com     |
|  2 | jane_smith   | jane.smith@example.com   |
|  3 | alice_wonder | alice.wonder@example.com |
+----+--------------+--------------------------+
3 rows in set (0.001 sec)

MariaDB &#91;testdb]&gt;</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc12">【1】SQLモード（sql_mode）の設定</span></h3>



<p>MySQLやMariaDBのサーバーでSQLの構文や動作を制御する設定のことです。<br>SQLモードを移行後も維持する場合は、MySQLとMariaDBでのsql_modeの違いを確認し、必要に応じて調整するします。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading"><span id="toc13">SQLモード（sql_mode）が異なる事によって発生する問題</span></h5>



<ol class="wp-block-list">
<li><strong>データの整合性が保たれない</strong></li>



<li><strong>クエリが異なる結果を返してアプリケーションの動作に影響を与える可能性がある。</strong></li>
</ol>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading"><span id="toc14">SQLモード（sql_mode）の確認方法</span></h5>



<ul class="wp-block-list">
<li><strong>MySQL8.0</strong></li>
</ul>



<pre class="wp-block-code"><code>mysql&gt; SHOW VARIABLES LIKE 'sql_mode';
+---------------+-----------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value                                                                                                                 |
+---------------+-----------------------------------------------------------------------------------------------------------------------+
| sql_mode      | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
+---------------+-----------------------------------------------------------------------------------------------------------------------+
1 row in set, 1 warning (0.01 sec)

mysql&gt;</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>MariaDB11.4</strong></li>
</ul>



<pre class="wp-block-code"><code>ariaDB &#91;(none)]&gt; SHOW VARIABLES LIKE 'sql_mode';
+---------------+-------------------------------------------------------------------------------------------+
| Variable_name | Value                                                                                     |
+---------------+-------------------------------------------------------------------------------------------+
| sql_mode      | STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+---------------+-------------------------------------------------------------------------------------------+
1 row in set (0.002 sec)</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading"><span id="toc15">SQLモード（sql_mode）</span></h5>



<p>今回は相違点を下記のように変更します。</p>



<ul class="wp-block-list">
<li><strong>ONLY_FULL_GROUP_BY</strong><br>MySQL では、ONLY_FULL_GROUP_BY が有効だと、GROUP BY に指定されていない非集約カラムが SELECT 句に含まれるとエラーになりますが、MariaDBではエラーにならない場合がありあります。テストをして確認する必要がありますが、<strong><span class="marker-under-red">MariaDBに設定</span></strong>する事とします。<br><br></li>



<li><strong>NO_ZERO_IN_DATE,NO_ZERO_DATE</strong><br>日付の０を含まなようにする設定です。MySQLとの互換性を保つ為、<strong><span class="marker-under-red">MariaDBにも設定します。</span></strong></li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading"><span id="toc16">SQLモード（sql_mode）設定方法</span></h5>



<p>MariaDBの「my.ini」に以下の様に追加します。</p>



<pre class="wp-block-code"><code>&#91;mysqld]
　・
sql_mode=<strong><span class="marker-under-red">ONLY_FULL_GROUP_BY</span></strong>,STRICT_TRANS_TABLES,<strong><span class="marker-under-red">NO_ZERO_IN_DATE,NO_ZERO_DATE</span></strong>,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc17">【２】使用しているストレージエンジンの違い</span></h3>



<p>ストレージエンジンとは、MariaDBがデータを保存し操作する方法を決定するモジュールです。テーブルごとに異なるストレージエンジンを設定できるため、用途に応じた柔軟なデータ管理が可能です。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading"><span id="toc18">ストレージエンジンが異なる事によって発生する問題</span></h5>



<ol class="wp-block-list">
<li><strong>特定のストレージエンジンでしか動作しない機能を使用している場合、移行後にエラーが発生する</strong>。<br><br></li>



<li><strong>代替ストレージエンジンに自動変更され、パフォーマンスや動作が変わる可能性がある。</strong><br><br></li>



<li><strong>データ移行時、移行が途中で停止したりデータが一部失われる</strong></li>
</ol>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading"><span id="toc19">ストレージエンジンの確認方法</span></h5>



<ul class="wp-block-list">
<li><strong>MySQL 8.0</strong></li>
</ul>



<pre class="wp-block-code"><code>SELECT TABLE_NAME, ENGINE FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'testdb';
+------------+--------+
| TABLE_NAME | ENGINE |
+------------+--------+
| users      | InnoDB |
+------------+--------+
1 row in set (0.00 sec)

mysql&gt;</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>MariaDB 11.4</strong></li>
</ul>



<pre class="wp-block-code"><code>MariaDB &#91;(none)]&gt; SELECT TABLE_NAME, ENGINE FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'testdb';
+------------+--------+
| TABLE_NAME | ENGINE |
+------------+--------+
| users      | InnoDB |
+------------+--------+
1 row in set (0.008 sec)

MariaDB &#91;(none)]&gt;</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading"><span id="toc20">MySQLのストレージエンジンがMariaDBでサポートされていない場合</span></h5>



<p>この場合はMariaDBの適切なエンジンに変更する必要があります。</p>



<ul class="wp-block-list">
<li><strong>MySQLからMariaDBへの移行時にサポートされていないエンジン</strong>
<ul class="wp-block-list">
<li><strong>MyISAM</strong> → MariaDBではInnoDBやAriaなどのエンジンに変更する必要があります。</li>



<li><strong>HEAP</strong> → MariaDBでは利用できません。</li>
</ul>
</li>
</ul>



<p>例）<strong>MyISAMテーブルをInnoDB に変更する方法</strong></p>



<pre class="wp-block-code"><code>ALTER TABLE my_table ENGINE = InnoDB;</code></pre>



<ul class="wp-block-list">
<li><strong>注意点</strong>
<ul class="wp-block-list">
<li>エンジン変更中はテーブルがロックされます。</li>



<li>データサイズが大きい場合、時間がかかる可能性があります。<br></li>
</ul>
</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc21">【３】gtid_mode（GTIDの使用）</span></h3>



<p>GTID は、分散環境でのレプリケーションを管理しやすくするために、トランザクションごとに一意の識別子を割り当てる仕組みです。</p>



<p><br>しかし、MariaDBとは完全な互換性は無い為レプリケーションを使用していてもGTID情報はバックアップに含めていませんでした。</p>



<p>MariaDBでGTIDを使用する場合は、MariaDBで設定します。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc22">gtid_modeの設定が異なる事によって発生する問題</span></h4>



<ol class="wp-block-list">
<li><strong>レプリケーションが失敗する可能性がある</strong><br><br></li>



<li><strong>レプリケーションパフォーマンスの低下</strong><br><br></li>



<li><strong>複数のトランザクションが同じデータにアクセスし、データの一貫性や整合性が損なわれる可能性がある</strong></li>
</ol>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<p></p>



<h3 class="wp-block-heading"><span id="toc23">【４】ユーザー情報の取得と設定</span></h3>



<h4 class="wp-block-heading"><span id="toc24">MySQLでのユーザー情報の取得</span></h4>



<p>下記のようにしてmysql.userテーブルから詳細なユーザー一覧と権限を取得します。</p>



<ul class="wp-block-list">
<li><strong>ユーザー一覧の取得</strong></li>
</ul>



<pre class="wp-block-code"><code>mysql&gt; SELECT user,host,plugin,authentication_string,ssl_cipher FROM mysql.user;
+------------------+-----------+-----------------------+------------------------------------------------------------------------+------------------------+
| user             | host      | plugin                | authentication_string                                                  | ssl_cipher             |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+------------------------+
| test_user        | %         | mysql_native_password | *A0F874BC7F54EE086FCE60A37CE7887D8B31086B                              | 0x                     |
| mysql.infoschema | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | 0x                     |
| mysql.session    | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | 0x                     |
| mysql.sys        | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | 0x                     |
| root             | localhost | mysql_native_password | *B9369488AFF3B0F0455CF44AB022B7ABDE6F9761                              | 0x                     |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+------------------------+
5 rows in set (0.00 sec)</code></pre>



<ul class="wp-block-list">
<li><strong>権限の取得</strong><br>下記のように各ユーザー毎に権限を確認します。</li>
</ul>



<pre class="wp-block-code"><code>mysql&gt; SHOW GRANTS FOR 'test_user'@'%';
+------------------------------------------------------+
| Grants for test_user@%                               |
+------------------------------------------------------+
| GRANT USAGE ON *.* TO `test_user`@`%`                |
| GRANT ALL PRIVILEGES ON `users`.* TO `test_user`@`%` |
+------------------------------------------------------+
2 rows in set (0.00 sec)

mysql&gt;</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc25">MariaDBでのユーザー追加と権限の設定</span></h4>



<p>MySQLで確認したユーザーと権限をMariaDBで設定します。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc26">【５】設定ファイルの確認</span></h3>



<p>MySQLで設定されている項目がMariaDBに無かった場合等は、MariaDBの設定ファイルに追加/変更して下さい。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc27">十分なテストを実施する</span></h3>



<p>十分なテストを実施し不具合が無い事を確認してから本番環境に切り替えて下さい。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc28">まとめ：移行を成功させるために</span></h2>



<p>MySQLからMariaDBへの移行を成功させるために重要なポイントを以下に簡潔にまとめます。</p>



<ul class="wp-block-list">
<li><strong>移行可能なバージョンの互換性を確認する</strong>
<ul class="wp-block-list">
<li>例）MySQL 8.0 → MariaDB 10.5以降。<br><br></li>
</ul>
</li>



<li><strong>データと構成のバックアップ</strong>
<ul class="wp-block-list">
<li>移行前にすべてのデータをmysqldumpでバックアップし設定ファイルも保存する<br><br></li>
</ul>
</li>



<li><strong>SQLモードの確認</strong>
<ul class="wp-block-list">
<li>MySQLとMariaDBの<strong>SQLモード</strong>（例: STRICT_TRANS_TABLES, ONLY_FULL_GROUP_BY）の違いを確認し、必要に応じて調整する<br><br></li>
</ul>
</li>



<li><strong>認証プラグインの確認</strong>　&#8212;&#8211; ユーザーデータしか移行していない為、今回は対象外
<ul class="wp-block-list">
<li>MySQL 8.0の**caching_sha2_password<strong>はMariaDBで非対応のため、</strong>mysql_native_password**に切り替える。<br><br></li>
</ul>
</li>



<li><strong>ストレージエンジンの互換性を確認する</strong>
<ul class="wp-block-list">
<li>MariaDBでサポートされないエンジン（例: MySQLのNDB）を使用していないか確認。</li>



<li>必要に応じて<strong>InnoDB</strong>や<strong>Aria</strong>に変更。<br><br></li>
</ul>
</li>



<li><strong>GTID（グローバルトランザクションID）対応</strong>
<ul class="wp-block-list">
<li>MySQLとMariaDBのGTIDは互換性がないため、必要なら無効化する。<br><br></li>
</ul>
</li>



<li><strong>特定機能の互換性確認</strong>
<ul class="wp-block-list">
<li>ストアドプロシージャ、トリガー、イベントなどがMariaDBで動作するか十分テストする。<br><br></li>
</ul>
</li>



<li><strong>確実なテスト後の移行</strong>
<ul class="wp-block-list">
<li>開発環境またはステージング環境で移行テストを実施し、パフォーマンスや互換性を確認する。<br><br></li>
</ul>
</li>



<li><strong>移行後の動作検証</strong>
<ul class="wp-block-list">
<li>アプリケーションやクエリの互換性を確認。</li>



<li>ログやエラーをチェックして問題を修正。<br><br><br></li>
</ul>
</li>
</ul>



<p>以上を実施し確実な移行を実施して下さい。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MariaDB】ストレージエンジンを効果的に活用しよう</title>
		<link>https://www.kemmy-it.com/2025/01/01/mariadb_enjine/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Wed, 01 Jan 2025 10:13:08 +0000</pubDate>
				<category><![CDATA[MariaDB]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=3595</guid>

					<description><![CDATA[ストレージエンジンを効果的に活用すると以下の事が実現できます。 適切なストレージエンジンを選択し効果的に使用することは、データベースの設計や運用の成功に不可欠です。 目次 【MariaDB】ストレージエンジンとは？【Ma [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>ストレージエンジンを効果的に活用すると以下の事が実現できます。</p>



<ol class="wp-block-list">
<li><strong>パフォーマンスの最適化</strong></li>



<li><strong>データの整合性と信頼性の向上</strong></li>



<li><strong>特殊な要件に応じた柔軟な対応</strong></li>



<li><strong>リソース利用の最適化</strong></li>



<li><strong>アプリケーション要件への適合</strong></li>
</ol>



<p>適切なストレージエンジンを選択し効果的に使用することは、データベースの設計や運用の成功に不可欠です。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>




  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-16" checked><label class="toc-title" for="toc-checkbox-16">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">【MariaDB】ストレージエンジンとは？</a></li><li><a href="#toc2" tabindex="0">【MariaDB】ストレージエンジンがある理由は？</a></li><li><a href="#toc3" tabindex="0">【MariaDB】ストレージエンジンの特徴と用途</a><ol><li><a href="#toc4" tabindex="0">InnoDB（最も使用頻度が高い）</a></li><li><a href="#toc5" tabindex="0">MyISAM</a></li><li><a href="#toc6" tabindex="0">Aria</a></li><li><a href="#toc7" tabindex="0">MEMORY</a></li><li><a href="#toc8" tabindex="0">SEQUENCE</a></li><li><a href="#toc9" tabindex="0">CSV</a></li><li><a href="#toc10" tabindex="0">MRG_MyISAM</a></li><li><a href="#toc11" tabindex="0">PERFORMANCE_SCHEMA</a></li></ol></li><li><a href="#toc12" tabindex="0">ストレージエンジンの指定方法</a><ol><li><a href="#toc13" tabindex="0">テーブル作成時にエンジンを指定する方法</a></li><li><a href="#toc14" tabindex="0">既存のテーブルのエンジンを変更する方法</a></li><li><a href="#toc15" tabindex="0">デフォルトのストレージエンジンを変更する方法</a></li></ol></li><li><a href="#toc16" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【MariaDB】ストレージエンジンとは？</span></h2>



<p>ストレージエンジンとは<strong>データベースがデータを保存/管理</strong>/<strong>操作する方法を決定する仕組み</strong>です。簡単に言うと、「<strong>データをどのように保存して、どう扱うかを決める機能</strong>」のことです。</p>



<p>例えばデータベースを普通のノートに例えると、ストレージエンジンは「<strong><span class="marker-under-red">どんなルールで書くかを決めるツール</span></strong>」の事を言います。</p>



<p></p>



<ul class="wp-block-list">
<li><strong>罫線付きのノートとして書く</strong>（1ページに書ける量が決まっている）<br>→ 書きやすく整理整頓しやすいけど、柔軟性は少ない。<br></li>



<li><strong>白紙のノートとして書く</strong>（どんな形式でも自由に書ける）<br>→ 書く自由度が高いけど、整理しにくいかもしれない。</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc2">【MariaDB】ストレージエンジンがある理由は？</span></h2>



<p>データの保存や利用方法は場面ごとに違います。<br>例えば、</p>



<ul class="wp-block-list">
<li><strong>お店の在庫データ</strong> → 正確さと信頼性が必要</li>



<li><strong>SNSの投稿データ</strong> → 検索速度が重要</li>



<li><strong>一時的なメモ</strong> → 高速で軽い仕組みが必要</li>
</ul>



<p>こうした用途に合わせて、最適な保存方法を選ぶために<strong>ストレージエンジン</strong>があります。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc3">【MariaDB】ストレージエンジンの特徴と用途</span></h2>



<h3 class="wp-block-heading"><span id="toc4">InnoDB（最も使用頻度が高い）</span></h3>



<ul class="wp-block-list">
<li><strong>主な特徴</strong>:<br>トランザクションに対応。行レベルロック/外部キーをサポートしていて、高い信頼性とパフォーマンスを持つ。</li>



<li><strong>用途</strong>:<br>Webアプリケーションやビジネスシステムなど、データ整合性が重要な環境。</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc5">MyISAM</span></h3>



<ul class="wp-block-list">
<li><strong>主な特徴</strong>:<br>非トランザクション型。読み取り性能が高速で軽量。外部キーはサポートされない。</li>



<li><strong>用途</strong>:<br>主に読み取りが多いシステムやログ解析。<br>データ整合性よりもパフォーマンスを優先する場面。</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc6">Aria</span></h3>



<ul class="wp-block-list">
<li><strong>主な特徴</strong>:<br>クラッシュセーフで、MyISAMの改良版。<br>MariaDBの内部処理（例えば一時テーブルや権限管理）で頻繁に使用。</li>



<li><strong>用途</strong>:<br>一般ユーザーが直接選択することは少ないが、内部一時テーブルや権限テーブルで一時的に使用される。</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc7">MEMORY</span></h3>



<ul class="wp-block-list">
<li><strong>主な特徴</strong>:<br>データがメモリ上に保存され、高速アクセスが可能。再起動するとデータが消える。</li>



<li><strong>用途</strong>:<br>キャッシュやセッション管理、短期間だけ必要なデータ処理。</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc8">SEQUENCE</span></h3>



<ul class="wp-block-list">
<li><strong>主な特徴</strong>:<br>特定の範囲で連続した値を生成する仮想テーブル。高速かつ効率的。</li>



<li><strong>用途</strong>:<br>テストデータ生成、数値の範囲指定やループ処理。</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc9">CSV</span></h3>



<ul class="wp-block-list">
<li><strong>主な特徴</strong>:<br>テーブルをCSVファイルとして保存。非常にシンプルで互換性が高い。</li>



<li><strong>用途</strong>:<br>データのインポート/エクスポート、外部システムとの連携。</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc10">MRG_MyISAM</span></h3>



<ul class="wp-block-list">
<li><strong>主な特徴</strong>:<br>同じ構造のMyISAMテーブルを1つの仮想テーブルとして統合。書き込みはできず、読み取り専用。</li>



<li><strong>用途</strong>:<br>分割されたデータの統合、ログ管理。</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc11">PERFORMANCE_SCHEMA</span></h3>



<ul class="wp-block-list">
<li><strong>主な特徴</strong>:<br>データベースのパフォーマンス監視に特化。内部統計を保持。</li>



<li><strong>用途</strong>:<br>管理者がパフォーマンス分析やデバッグで使用。</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc12">ストレージエンジンの指定方法</span></h2>



<p>MariaDBで使用するストレージエンジンは、テーブル作成時に指定します。デフォルトのストレージエンジンはInnoDBですが、他のエンジン（例えば、MyISAMやAria）を使用したい場合は、テーブル作成時に明示的に指定します。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc13">テーブル作成時にエンジンを指定する方法</span></h3>



<p>CREATE TABLE文で、ENGINEオプションを使用して指定します。</p>



<p>例１： InnoDBエンジンを使用する場合（デフォルト）</p>



<pre class="wp-block-code"><code>CREATE TABLE users (
    id INT PRIMARY KEY,
    username VARCHAR(50),
    email VARCHAR(100)
) ENGINE=InnoDB;
</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>例２：MyISAMエンジンを使用する場合</p>



<pre class="wp-block-code"><code>CREATE TABLE users (
    id INT PRIMARY KEY,
    username VARCHAR(50),
    email VARCHAR(100)
) ENGINE=MyISAM;
</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>例３： Ariaエンジンを使用する場合</p>



<pre class="wp-block-code"><code>CREATE TABLE users (
    id INT PRIMARY KEY,
    username VARCHAR(50),
    email VARCHAR(100)
) ENGINE=Aria;
</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc14">既存のテーブルのエンジンを変更する方法</span></h3>



<p>すでに作成されているテーブルのストレージエンジンを変更するには、ALTER TABLE文を使用します。</p>



<pre class="wp-block-code"><code>ALTER TABLE users ENGINE = InnoDB;</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc15">デフォルトのストレージエンジンを変更する方法</span></h3>



<p>MariaDBの設定ファイル（my.cnfまたはmy.ini）で、デフォルトのエンジンを変更することもできます。例えば、MyISAMをデフォルトエンジンに設定するには、以下のように設定します。</p>



<pre class="wp-block-code"><code>&#91;mysqld]
default-storage-engine = MyISAM
</code></pre>



<p>その後、MariaDBを再起動すると、新しく作成されるテーブルが指定したエンジンを使用するようになります。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc16">まとめ</span></h2>



<p>ストレージエンジンは、データベース内のデータがどのように格納されるかを決定します。例えば、データがどのようにディスク上に書き込まれるか、トランザクションがどのように管理されるか、検索や更新がどのように最適化されるか、などです。ストレージエンジンの選択により、パフォーマンス、信頼性、セキュリティ、機能性が大きく異なります。</p>



<p>よって、適切なストレージエンジンを選択し効果的に使用することは、データベースの設計や運用の成功に不可欠といえます。</p>



<p></p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MariaDB】インストール 詳細解説</title>
		<link>https://www.kemmy-it.com/2024/12/30/mariadb_install/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Mon, 30 Dec 2024 12:07:38 +0000</pubDate>
				<category><![CDATA[MariaDB]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=3517</guid>

					<description><![CDATA[ここでは単なるインストール方法だけではなく、多少深堀りした内容も紹介します。 目次 MariaDBとは？MariaDBのインストール（Windows編）MariaDB インストーラーのダウンロードインストール環境（202 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>ここでは単なるインストール方法だけではなく、多少深堀りした内容も紹介します。</p>




  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-18" checked><label class="toc-title" for="toc-checkbox-18">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">MariaDBとは？</a></li><li><a href="#toc2" tabindex="0">MariaDBのインストール（Windows編）</a><ol><li><a href="#toc3" tabindex="0">MariaDB インストーラーのダウンロード</a><ol><li><a href="#toc4" tabindex="0">インストール環境（2024年12月現在）</a></li></ol></li><li><a href="#toc5" tabindex="0">MariaDB インストーラーの実行</a><ol><li><a href="#toc6" tabindex="0">セットアップウィザード開始画面</a></li><li><a href="#toc7" tabindex="0">「エンドユーザーライセンス契約」確認画面</a></li><li><a href="#toc8" tabindex="0">「デフォルトプロパティ」設定画面（1/2）</a></li><li><a href="#toc9" tabindex="0">「デフォルトプロパティ」設定画面（2/2）</a></li><li><a href="#toc10" tabindex="0">インストール実行画面</a></li><li><a href="#toc11" tabindex="0">インストール完了画面</a></li></ol></li><li><a href="#toc12" tabindex="0">MariaDB インストール後のフォルダ構成</a></li><li><a href="#toc13" tabindex="0">MariaDBの動作確認</a></li><li><a href="#toc14" tabindex="0">MariaDB サービスへの登録確認</a></li><li><a href="#toc15" tabindex="0">HeidiSQL によるMariaDB 動作確認</a></li></ol></li><li><a href="#toc16" tabindex="0">まとめ</a><ol><li><a href="#toc17" tabindex="0">脚注</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">MariaDBとは？</span></h2>



<p>MariaDBは、オープンソースのリレーショナルデータベース管理システム（RDBMS）で、高速性/信頼性/<strong>スケーラビリティ</strong><sup data-fn="a7592233-8c15-49ed-a32b-39d34f9213c7" class="fn"><a href="#a7592233-8c15-49ed-a32b-39d34f9213c7" id="a7592233-8c15-49ed-a32b-39d34f9213c7-link">1</a></sup>を備えています。MySQL<sup data-fn="30da4dd2-9cd2-436f-9e4d-29186127b72a" class="fn"><a href="#30da4dd2-9cd2-436f-9e4d-29186127b72a" id="30da4dd2-9cd2-436f-9e4d-29186127b72a-link">2</a></sup>からフォーク（分岐）されたプロジェクトであり、同じSQLインターフェースを持ちながらも、独自の機能が追加されています。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc2">MariaDBのインストール（Windows編）</span></h2>



<h3 class="wp-block-heading"><span id="toc3">MariaDB インストーラーのダウンロード</span></h3>



<p>公式サイトからインストーラー（最新の安定版）をダウンロードし、実行してインストールします。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc4">インストール環境（2024年12月現在）</span></h4>



<ul class="wp-block-list">
<li>Windows 10 22H2</li>



<li>MariaDB Version 11.4.4 ｘ84-64</li>
</ul>



<p>公式サイト：<a href="https://mariadb.org/">https://mariadb.org/</a></p>



<p><br>公式サイトの初期画面で「Download」をクリック</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="469" src="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_01-1024x469.png" alt="" class="wp-image-3521" srcset="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_01-1024x469.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_01-300x137.png 300w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_01-768x352.png 768w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_01.png 1147w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>2024年12月現在</strong>では「MariaDB Server 11.6.2 Rolling」というバージョンが標準で表示されますが、下の赤枠には「これはローリングリリースです。リリース時点で、<strong><span class="marker-under-red">最新の長期リリースはMariaDB 11.4であり、5年間保守されます</span></strong>。」と表示されています。</p>



<p><strong><span class="marker-under-red">本番環境で運用する場合</span></strong>は「安定板で５年間保守される最新バージョン」をインストールします。</p>



<p>ここではリリース形式<sup data-fn="3398d2a3-ca76-46c7-bddf-e526b3e61c24" class="fn"><a href="#3398d2a3-ca76-46c7-bddf-e526b3e61c24" id="3398d2a3-ca76-46c7-bddf-e526b3e61c24-link">3</a></sup>がＧA版ではあるものの安定版である「バージョン11.4.4」のインストーラーをダウンロードします。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="916" height="674" src="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_05.png" alt="" class="wp-image-3527" srcset="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_05.png 916w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_05-300x221.png 300w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_05-768x565.png 768w" sizes="(max-width: 916px) 100vw, 916px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p>バージョン11.4.4を選択し「Download」ボタンをクリックしてインストーラーをダウンロードします。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="902" height="625" src="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_06.png" alt="" class="wp-image-3528" srcset="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_06.png 902w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_06-300x208.png 300w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_06-768x532.png 768w" sizes="(max-width: 902px) 100vw, 902px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p>ダウンロード完了後に「MariaDBアカウント」作成画面が表示されます。アカウントを作成するとダウンロードリリース通知や製品の更新情報などを受け取ることができます。</p>



<p>ここではアカウントを作成しないでインストール作業に進みます。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="447" src="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_07-1024x447.png" alt="" class="wp-image-3530" srcset="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_07-1024x447.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_07-300x131.png 300w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_07-768x335.png 768w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_07.png 1198w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc5">MariaDB インストーラーの実行</span></h3>



<p>下記はダウンロードフォルダ内のインストーラーです。msi形式なのでダブルクリックしてインストールします。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="194" height="35" src="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_10.png" alt="" class="wp-image-3536" style="width:337px;height:auto"/></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc6">セットアップウィザード開始画面</span></h4>



<ul class="wp-block-list">
<li><strong>「Next」ボタンをクリックします。</strong></li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="495" height="387" src="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_11.png" alt="" class="wp-image-3540" srcset="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_11.png 495w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_11-300x235.png 300w" sizes="(max-width: 495px) 100vw, 495px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc7">「エンドユーザーライセンス契約」確認画面</span></h4>



<ul class="wp-block-list">
<li>同意する（□I accept the terms in the License Agreement）にチェックを入れ「Next」ボタンをクリックします。MariaDBはライセンス契約に「GNU GENERAL PUBLIC LICENSE(GPL)<sup data-fn="9658f05b-c774-4bb7-a8ad-29d77c71e088" class="fn"><a href="#9658f05b-c774-4bb7-a8ad-29d77c71e088" id="9658f05b-c774-4bb7-a8ad-29d77c71e088-link">4</a></sup>」を適用しています。</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="495" height="387" src="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_12.png" alt="" class="wp-image-3541" srcset="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_12.png 495w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_12-300x235.png 300w" sizes="(max-width: 495px) 100vw, 495px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc8">「デフォルトプロパティ」設定画面（1/2）</span></h4>



<ul class="wp-block-list">
<li><strong>①管理者ユーザー「root」パスワードの設定</strong><br>　パスワードを設定します。確認のため２回入力して下さい。<br><br></li>



<li><strong>②リモートで「root」を使用できるようにするか？</strong><br>　ここでは必要が無いので&#x2714;は入れません。もし必要な場合は&#x2714;を入れて下さい。<br><br></li>



<li><strong>③「UTF8」をデフォルト文字セットとして使用するか？</strong><br>ここでは&#x2714;をいれます。UTF-8は、多言語や絵文字を含むアプリケーションで広く利用される推奨設定です。<br><br></li>



<li><strong>④「インストール先フォルダ」の指定画面</strong><br>特に理由が無ければこのままでOKです。変更したい場合は「Browse&#8230;」で変更します。<br><br></li>
</ul>



<p>設定が完了したら「Next」ボタンで次へ進みます。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="508" height="387" src="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_14.png" alt="" class="wp-image-3543" srcset="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_14.png 508w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_14-300x229.png 300w" sizes="(max-width: 508px) 100vw, 508px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc9">「デフォルトプロパティ」設定画面（2/2）</span></h4>



<ul class="wp-block-list">
<li><strong>①「Enable networking」外部からの接続許可画面</strong><br>　外部（社内LAN等）からの接続を許可するか否かを指定します。<br>　ローカルで使用する場合は不要ですが通常は&#x2714;を入れます。又、通信時に使用するポートは<br>　特別な理由が無い限りデフォルト（3306）にしておいて下さい。<br><br></li>



<li><strong>②「デフォルトストレージエンジンInnoDB<sup data-fn="13f4ac81-8be0-4468-97cc-60064c4a16fd" class="fn"><a href="#13f4ac81-8be0-4468-97cc-60064c4a16fd" id="13f4ac81-8be0-4468-97cc-60064c4a16fd-link">5</a></sup>」の設定画面</strong><br>　Buffer pool size：データとインデックスをメモリ上に保持するための領域<br>　Page size：データとインデックスを格納するために使用する基本的なメモリ領域のサイズ<br><br></li>
</ul>



<p>Page sizeはデータの読み書きやメモリ管理の効率に影響を与えますが、両方とも良く分からない場合はそのまま「Next」で次に進みます。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="503" height="387" src="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_15.png" alt="" class="wp-image-3544" srcset="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_15.png 503w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_15-300x231.png 300w" sizes="(max-width: 503px) 100vw, 503px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc10">インストール実行画面</span></h4>



<ul class="wp-block-list">
<li><strong>「Install」ボタンをクリックしてMariaDBをインストールします。</strong></li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="497" height="392" src="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_16.png" alt="" class="wp-image-3545" srcset="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_16.png 497w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_16-300x237.png 300w" sizes="(max-width: 497px) 100vw, 497px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="494" height="385" src="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_17.png" alt="" class="wp-image-3547" srcset="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_17.png 494w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_17-300x234.png 300w" sizes="(max-width: 494px) 100vw, 494px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc11">インストール完了画面</span></h4>



<ul class="wp-block-list">
<li>「Finish」ボタンをクリックしてインストールを終了します。</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="494" height="384" src="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_19.png" alt="" class="wp-image-3548" srcset="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_19.png 494w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_19-300x233.png 300w" sizes="(max-width: 494px) 100vw, 494px" /></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc12">MariaDB インストール後のフォルダ構成</span></h3>



<p>MariaDB 11.4.4 のフォルダ構成は以下のようになっています。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:100%">
<figure class="wp-block-flexible-table-block-table is-style-stripes"><table class=""><tbody><tr><td>フォルダ名</td><td>内容</td></tr><tr><td><code>bin</code></td><td>MariaDBの主要な実行ファイル（例: <code>mysqld.exe</code>, <code>mysql.exe</code>）</td></tr><tr><td><code>data</code></td><td>データベースのデータファイル</td></tr><tr><td><code>lib</code></td><td>必要なライブラリファイル</td></tr><tr><td><code>share</code></td><td>設定ファイルやサンプルデータ</td></tr><tr><td><code>include</code></td><td>MariaDBの開発環境で使用されるヘッダーファイル</td></tr></tbody></table></figure>
</div>
</div>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc13">MariaDBの動作確認</span></h3>



<p>スタートメニューからMySQL Client を起動しMariaDBが正常に動作するか確認します。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="318" height="257" src="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_20.png" alt="" class="wp-image-3573" srcset="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_20.png 318w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_20-300x242.png 300w" sizes="(max-width: 318px) 100vw, 318px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p>rootのパスワードを入力して接続し、「show databases;」（SQL)で現在 存在しているデータベースを表示します。データベースが表示されればローカルでの動作確認は完了です。</p>



<pre class="wp-block-code"><code>Enter password: ******
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 11.4.4-MariaDB mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB &#91;(none)]&gt; show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.001 sec)

MariaDB &#91;(none)]&gt;
</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc14">MariaDB サービスへの登録確認</span></h3>



<p>「スタート」→「Windows管理ツール」→「サービス」でサービス一覧を表示します。下図のように「MariaDB」が登録されていて、スタートアップの種類が「自動」になっていればOKです。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="712" height="122" src="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_21.png" alt="" class="wp-image-3576" srcset="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_21.png 712w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_21-300x51.png 300w" sizes="(max-width: 712px) 100vw, 712px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc15">HeidiSQL によるMariaDB 動作確認</span></h3>



<p><strong>HeidiSQL</strong>は、MariaDBやMySQL、PostgreSQLなどのデータベースを簡単に管理・操作するための<strong>GUIツール</strong>です。HeidiSQLはMariaDBをインストールすると同時にインストールされます。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="136" height="95" src="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_22.png" alt="" class="wp-image-3580" style="width:198px;height:auto"/></figure>



<p><strong>HeidiSQL</strong>をダブルクリックして起動します。①「新規」ボタンで②「ローカルMariaDBへ接続」し③rootの「パスワード」を入力して、④「開くボタン」をクリックします。<br>下図のようにデータベースが表示されれば動作確認は終了です。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="550" height="378" src="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_23.png" alt="" class="wp-image-3581" srcset="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_23.png 550w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_23-300x206.png 300w" sizes="(max-width: 550px) 100vw, 550px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="564" height="369" src="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_24.png" alt="" class="wp-image-3583" srcset="https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_24.png 564w, https://www.kemmy-it.com/wp-content/uploads/2024/12/01_MariaDB_install_24-300x196.png 300w" sizes="(max-width: 564px) 100vw, 564px" /></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc16">まとめ</span></h2>



<p>MariaDBは軽量なデータベース管理システムでありながら柔軟性とコスト効率の良さから、多くの業界で採用されています。<br>又、オープンソースコミュニティと企業サポートの両方から支えられて、現在も積極的に開発が進行しており長期的に信頼できるデータベースとして、これからも多くのユーザーや企業に採用され続けていくでしょう。</p>



<p>このようなRDBMSを学習して習得する事は、今後のあなたの業務においても必ずプラスになります。<br>これからも一緒に学習していきましょう。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc17">脚注</span></h3>


<ol class="wp-block-footnotes"><li id="a7592233-8c15-49ed-a32b-39d34f9213c7"><strong>スケーラビリティ</strong><br>システムや機器、ソフトウェアなどが規模や利用負荷の増大に対応できる能力や度合いを指します。日本語では「拡張性」「拡張可能性」を意味します<br><br> <a href="#a7592233-8c15-49ed-a32b-39d34f9213c7-link" aria-label="脚注参照1にジャンプ">↩︎</a></li><li id="30da4dd2-9cd2-436f-9e4d-29186127b72a"><strong>MySQL</strong><br>MySQLは、1995年にスウェーデンのソフトウェア企業 <strong>MySQL AB</strong> によって開発されました。<br>初期のバージョンから、SQL（Structured Query Language）をサポートし、簡単にデータ操作が行えることが特徴でした。<br>その後、MySQLは成長を続け、2008年にアメリカのOracle Corporationによって買収され、この買収を機にMariaDBが分岐して開発されることとなりました。<br><br> <a href="#30da4dd2-9cd2-436f-9e4d-29186127b72a-link" aria-label="脚注参照2にジャンプ">↩︎</a></li><li id="3398d2a3-ca76-46c7-bddf-e526b3e61c24"><strong>リリース形式</strong><br>①MariaDB Sever 11.8.0 <strong><span class="marker-under-red">Preview</span></strong><br>　正式リリース前のテスト段階にあるバージョン<br><br>②MariaDB Sever 11.6.2 <strong><span class="marker-under-red">Rolling</span></strong><br>　ローリングリリース（Rolling Release）**モデルを採用していることを意味します。<br>　このモデルでは、ソフトウェアの更新が連続的に行われ、新しいバージョンが定期的に<br>　リリースされるのではなく、常に最新の機能や修正がユーザーに提供されます。<br><br>③MariaDB Sever 11.7.1 <strong><span class="marker-under-red">RC Rolling</span></strong><br>　「リリース候補」であり、同時に「ローリングリリース」モデルで提供されていることを<br>　示します。このバージョンは正式リリース前に機能や安定性を最終的に調整するために<br>　公開され、ユーザーに頻繁にアップデートを提供する形になります。<br><br>④<strong><span class="marker-under-red">MariaDB Sever 11.4.4</span></strong><br>　GA（General Availability）リリースです。GA（General Availability）リリースは<br>　一般ユーザー向けに公開され、製品が安定していることを示しますが、<br>　LTS（Long Term Support）リリースと同じレベルでの長期的なサポートが<br>　保証されているわけではありません。<br><br> <a href="#3398d2a3-ca76-46c7-bddf-e526b3e61c24-link" aria-label="脚注参照3にジャンプ">↩︎</a></li><li id="9658f05b-c774-4bb7-a8ad-29d77c71e088"><strong>GNU GENERAL PUBLIC LICENSE(GP</strong>L)<br>（GNU一般公衆利用許諾契約書）は、フリーソフトウェア財団（Free Software Foundation、FSF）が定めた、フリーソフトウェアの使用、コピー、配布、改変に関するライセンスの一種です。<br><br>GPLは、ソフトウェアを自由に使い、学び、改良し、配布する権利をユーザーに与えることを目的としています。GPLは、特に<strong>ソフトウェアの自由（free software）</strong>を保障するライセンスとして広く知られています。<br><br> <a href="#9658f05b-c774-4bb7-a8ad-29d77c71e088-link" aria-label="脚注参照4にジャンプ">↩︎</a></li><li id="13f4ac81-8be0-4468-97cc-60064c4a16fd"><strong>デフォルトストレージエンジンinnodbの設定</strong><br>MariaDBには処理に最適化されたストレージエンジンがあります。標準のエンジンはinnodbで高信頼性が求められるトランザクション重視のアプリケーションで、金融システム/eコマースなどで使用されます。 <a href="#13f4ac81-8be0-4468-97cc-60064c4a16fd-link" aria-label="脚注参照5にジャンプ">↩︎</a></li></ol>


<p></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
