アプリケーション開発ポータルサイト
ServerNote.NET
Amazon.co.jpでPC関連商品タイムセール開催中!
カテゴリー【UbuntuMySQL
UbuntuにMariaDBを導入するメモ
POSTED BY
2023-09-11

インストール

apt -y update
apt install mariadb-server mariadb-client libmysqlclient-dev

設定ファイル変更・追記

/etc/mysql/mariadb.conf.d/50-server.cnf

# MySQL/MariaDB default is Latin1, but in Debian we rather default to the full
# utf8 4-byte character set. See also client.cnf
character-set-server  = utf8mb4
#collation-server      = utf8mb4_general_ci
collation-server      = utf8mb4_bin

/etc/mysql/mariadb.conf.d/50-client.cnf

[client]
default-character-set = utf8mb4

/etc/mysql/conf.d/mysql.cnf

[mysql]
default-character-set = utf8mb4

/etc/mysql/conf.d/mysqldump.cnf

[mysqldump]
default-character-set = utf8mb4

セキュリティスクリプト実行

mysql_secure_installation

基本的にはすべて「Y」を選択し、rootユーザのパスワードを設定する。

設定反映のため再起動する

systemctl restart mariadb

rootユーザでコンソール起動

mysql -u root -p
パスワード入力

設定ファイルの文字コード指定が反映されているかチェック

SHOW VARIABLES LIKE '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8mb3                    |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

データベースの作成

CREATE DATABASE mytestdb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

一般ユーザーの作成

CREATE USER "mytestuser"@"localhost" IDENTIFIED BY "mytestpassword";

権限の付与

GRANT ALL ON mytestdb.* TO "mytestuser"@"localhost";

設定通りの文字コードを指定したテーブル定義

CREATE TABLE mytesttable (
  no float NOT NULL,
  id varchar(128) NOT NULL,
  date timestamp NOT NULL DEFAULT current_timestamp(),
  upd_date timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  title text NOT NULL,
  honbun text NOT NULL,
  plain text NOT NULL,
  display text NOT NULL,
  category varchar(128) NOT NULL,
  status smallint(6) NOT NULL DEFAULT 0,
  PRIMARY KEY (id),
  KEY plain (plain(1024)),
  KEY title (title(1024))
) ENGINE=InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

テーブル定義文のみダンプするコマンド

mysqldump -u mytestuser -pmytestpassword mytestdb -d > mytestdb_tables.sql

テーブル定義文をダンプせず中身だけINSERT文でダンプするコマンド

mysqldump -u mytestuser -pmytestpassword mytestdb  --no-create-info -c --order-by-primary --skip-extended-insert > mytestdb_data.dmp

ダンプしたデータファイルのリストア

mysql -u mytestuser -pmytestpassword mytestdb < mytestdb_tables.sql
mysql -u mytestuser -pmytestpassword mytestdb < mytestdb_data.dmp
※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】