📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

文字列「__FORCETOC__」を「{{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This pag…
 
(同じ利用者による、間の12版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
<br><br>
== データベースの選択 ==
ログイン後、データベースを選択する。<br>
<syntaxhighlight lang="mysql">
USE <データベース名>;
</syntaxhighlight>
<br>
MySQLサーバの接続時において、<code>mysql</code>コマンドのオプションにデータベース名を指定することにより、予めデータベースを選択することができる。<br>
mysql -u <ユーザ名> -p <データベース名>
<br><br>
== データベースの作成 ==
==== 文字コード ====
データベースの作成時において、文字コードを指定する。<br>
<syntaxhighlight lang="mysql">
CREATE DATABASE <データベース名>
    CHARACTER SET=utf8mb4  -- 文字コードをutf8mb4に指定する場合
</syntaxhighlight>
<br>
MySQLのデフォルトの文字コードを確認する。<br>
<syntaxhighlight lang="mysql">
Show Variables Like "chara%";
</syntaxhighlight>
<br>
* character_set_client
*: クライアント側で発行したSQL文はこの文字コードになる。
* character_set_connection
*: クライアントから受け取った文字をこの文字コードへ変換する。
* character_set_database
*: 現在参照しているDBの文字コード
* character_set_results
*: クライアントへ送信する検索結果はこの文字コードになる。
* character_set_server
*: DB作成時のデフォルトの文字コード
* character_set_system
*: システムの使用する文字セットのことであり、utf8やutf8mb3が使用される。
<br>
MySQLのデフォルトの文字コードを設定する場合は、my.cnfファイルを編集する。<br>
<u>my.cnfファイルを変更した後は、MySQLを再起動する必要がある。</u><br>
<syntaxhighlight lang="ini">
# my.cnfファイル
[mysqld]
character-set-server=utf8mb4  # MySQLサーバのデフォルトの文字コードを指定する
[client]
default-character-set=utf8mb4  # MySQLクライアントのデフォルトの文字コードを指定する
</syntaxhighlight>
<br>
既存のデータベースの文字コードは、INFORMATION_SCHEMAデータベースのSCHEMATAテーブルから確認することができる。<br>
<syntaxhighlight lang="mysql">
SELECT SCHEMA_NAME,DEFAULT_CHARACTER_SET_NAME
    FROM INFORMATION_SCHEMA.SCHEMATA
    WHERE SCHEMA_NAME = '<データベース名>';
</syntaxhighlight>
<br>
既存のデータベースの文字コードを変更する。<br>
<syntaxhighlight lang="mysql">
ALTER DATABASE <データベース名>
    [[DEFAULT] CHARACTER SET <文字コード>]
    [[DEFAULT] COLLATE <照合順序>]
# 例: 文字コードはutf8mb4, 照合順序はutf8mb4_general_ci
ALTER DATABASE <データベース名>
    CHARACTER SET utf8mb4
    COLLATE utf8mb4_general_ci;
</syntaxhighlight>
<br>
==== 既存のデータベースの存在を確認して作成 ====
既存のデータベースが存在していない場合はデータベースを作成する。<br>
これは、データベースの重複、または、既存のデータベースを上書き/削除することを防ぐことができる。<br>
CREATE DATABASE IF NOT EXISTS <データベース名>
    CHARACTER SET=utf8mb4
<br>
==== データベースの暗号化 ====
暗号化プラグインが必要である。<br>
なお、MySQL8では標準で暗号化プラグインがインストールされている。<br>
CREATE DATABASE IF NOT EXISTS <データベース名>
    CHARACTER SET=utf8mb4
    ENCRYPTION='Y'  -- 暗号化を有効にする場合
                    -- 無効にする場合は、Nを指定する
<br><br>
<br><br>


62行目: 145行目:
このクエリは、サーバの照合順序に関する情報を表示する。<br>
このクエリは、サーバの照合順序に関する情報を表示する。<br>
デフォルトの照合順序は、<code>collation_server</code>として表示される。<br>
デフォルトの照合順序は、<code>collation_server</code>として表示される。<br>
<br>
==== 既存のデータベースの照合順序を確認する ====
データベースの照合順序は、INFORMATION_SCHEMAデータベースのSCHEMATAテーブルから確認することができる。<br>
<syntaxhighlight lang="mysql">
SELECT SCHEMA_NAME, DEFAULT_COLLATION_NAME
    FROM INFORMATION_SCHEMA.SCHEMATA
    WHERE SCHEMA_NAME = '<データベース名>';
</syntaxhighlight>
<br>
==== 既存のデータベースの照合順序を変更する ====
データベースの照合順序を変更する。<br>
<syntaxhighlight lang="mysql">
ALTER DATABASE <データベース名>
    [[DEFAULT] CHARACTER SET <文字コード>]
    [[DEFAULT] COLLATE <照合順序>]
ALTER DATABASE <データベース名>
    CHARACTER SET utf8mb4
    COLLATE utf8mb4_general_ci;
</syntaxhighlight>
<br><br>
== データベースの削除 ==
<u><code>DROP DATABESE</code>文により削除したデータベースは、復元することができないことに注意すること。</u><br>
<syntaxhighlight lang="mysql">
DROP DATABASE <データベース名>;
-- または
DROP DATABASE IF EXISTS <データベース名>
</syntaxhighlight>
<br><br>
<br><br>


== データベースの確認 ==
MySQLに存在する全てのデータベースを確認する。<br>
<syntaxhighlight lang="mysql">
SHOW DATABASES;
</syntaxhighlight>
<br>
現在使用しているデータベースを確認する。<br>
<syntaxhighlight lang="mysql">
USE <データベース名>;
SELECT DATABASE();
</syntaxhighlight>
<br><br>
== データベースのバージョンの確認 ==
現在使用しているデータベースのバージョンを確認する。<br>
<syntaxhighlight lang="mysql">
USE <データベース名>;
SELECT VERSION();
</syntaxhighlight>
<br><br>
== データベースのバックアップ ==
==== 全てのデータベースのバックアップ ====
mysqldump -u root -p --opt --all-databases > <バックアップファイル名>.sql
<br>
==== 特定のデータベースのバックアップ ====
mysqldump -u <ユーザ名> -p -x <バックアップするデータベース名> > <バックアップファイル名>.sql
<br><br>
== データベースの復元 ==
==== 全てのデータベースの復元 ====
まず、MySQLサービスを停止する。<br>
sudo systemctl stop mysql
<br>
次に、データベースの実体ファイルを確認する。<br>
* /var/lib/mysql/ib_logfileファイル
*: ログ用領域ファイル
* /var/lib/mysql/ibdata1ファイル
*: データ用領域ファイル
<br>
上記のファイル群を削除する。<br>
sudo rm 'ib_logfile*' 'ibdata*'
<br>
MySQLサービスを起動する。<br>
sudo systemctl start mysql
<br>
全てのデータベースを復元する。<br>
mysql -u root -p < <バックアップファイル名>.sql
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:MySQL]]
[[カテゴリ:MySQL]]