0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

XAMPP for Linux DATABASE作成

Posted at

記事の内容

Linux版XAMPPにてPHPMyAdminではなく端末からDB作成、DBのユーザー作成、A5:SQL Mk-2で参照するまでの手順

今回使用したXamppのバージョン

xampp-linux-x64-8.1.10-0-installer.run

本文

1. MySQL起動

XAMPPの管理コンソールからMySQLを起動させる。
以下のようにRunningになっていればOK
image.png

2. 端末からMySQLにログイン

MySQL(実体はMariaDBだが以降はMySQLと呼ぶ)の実行ファイルは以下添付画像の通り/opt/lampp/bin/mysqlに配置されているため
image.png

以下のコマンドでMySQLにログインすることが出来る。

/opt/lampp/bin/mysql -u root -p

# もし駄目なら管理者権限で実行でもOK
sudo /opt/lampp/bin/mysql -u root -p

# 更にちゃんとHOST指定したい場合は以下
sudo /opt/lampp/bin/mysql -u root -p -h localhost

Enter後
image.png
パスワード入力町状態になるが初期状態ではrootのパスワードは空なのでそのままエンターでOK

image.png

3. DB作成

CREATE DATABASE データベース名 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

DB作成時のオプションについての補足

CHARACTER SET(キャラクタセット)
・utf8: 3バイトまでのUnicode文字をサポート(MySQLではよく使われる)
・utf8mb4: 4バイトのUnicode文字もサポート(絵文字など)
・latin1: 西欧言語向けの文字セット
COLLATE(照合順序)
・大文字と小文字を区別しない場合: COLLATE utf8mb4_general_ci
・大文字と小文字を区別する場合: COLLATE utf8mb4_bin
COLLATE(照合順序)の具体例

CREATE TABLE users (
    username VARCHAR(255)
)

INSERT INTO users (username) VALUES ('Alice'), ('alice');

SELECT * FROM users WHERE username = 'Alice';  -- 結果: binなら'Alice' のみが返り、general_ciなら両方返ってくる
SELECT * FROM users WHERE username = 'alice';  -- 結果: binなら'alice' のみが返る、general_ciなら両方返ってくる

image.png

(個人的にはbinの方が厳密で良い気がするけどgeneral_ciの方がよく見かける理由は何故だろうか?)

4-1. 作成したDB専用ユーザーの作成(ユーザー作成のみ)

# 基本構文
CREATE USER 'username'@'hostname' IDENTIFIED BY 'example_password';

# ローカルホストから接続するユーザーの作成
CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'example_password';

# どのホストからも接続できるユーザーの作成
CREATE USER 'example_user'@'%' IDENTIFIED BY 'example_password';

# ホストを特定のIPアドレスに制限する
CREATE USER 'example_user'@'192.168.1.100' IDENTIFIED BY 'example_password';

4-2. 作成したDB専用ユーザーの作成(権限付与)

# 基本構文
GRANT 権限リスト ON データベース名.テーブル名 TO 'ユーザー名'@'ホスト名';

# 特定のテーブルにSELECT権限のみ付与する場合
GRANT SELECT ON my_database.my_table TO 'example_user'@'localhost';

# 複数の権限を特定のテーブルに付与する場合
GRANT SELECT, INSERT, UPDATE ON my_database.my_table TO 'example_user'@'localhost';

# データベース内のすべてのテーブルに対し、SELECT, INSERT権限を付与する場合
GRANT SELECT, INSERT ON my_database.* TO 'example_user'@'localhost';

# データベース内の全てのテーブルに全ての権限を付与する場合
# すべての操作とはSELECT、INSERT、UPDATE、DELETE、CREATE、DROP、ALTER など
GRANT ALL PRIVILEGES ON my_database.* TO 'example_user'@'localhost';

# 付与後に権限を反映する
FLUSH PRIVILEGES;

5. ログアウトして作成したユーザーでログイン可能なことを確認

# MySQLにrootでログイン中の場合は以下
exit

# 作成したユーザーのユーザー名でログイン
/opt/lampp/bin/mysql -u user_name -p

# ログイン中のユーザー確認
SELECT USER();

# 作成したDBが見れるかどうかの確認
show databases;

6. A5:SQL Mk-2でDBの追加

LinuxOSの場合は通常A5:SQL MK-2は使用できませんが、作者の方が書いてくださっている以下記事の通り、wineを使用することで制限はあるそうですがLinuxでも使用することが出来ます。
wine を使って Linux 上で A5:SQL Mk-2 を動作させる

※本記事では既にwine導入済みの前提

DB接続情報

  • データベース名:connect_test
  • ユーザー名:connect_test_user
  • パスワード:connect_test_password

以下ログ

$ /opt/lampp/bin/mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 28
Server version: 10.4.25-MariaDB Source 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 [(none)]> CREATE DATABASE connect_test CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> CREATE USER 'connect_test_user'@'localhost' IDENTIFIED BY 'connect_test_password';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON connect_test.* TO 'connect_test_user'@'localhost';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

上記の情報でDBとユーザーを作成した場合の接続方法をキャプチャで添付しておきます。
image.png
左の白い領域で右クリック > Add or Delete Database ...をクリック

image.png
+Add をクリック

image.png
MySQL/MariaDB (Direct connection)をクリック

接続情報入力用のモーダルが表示されるので「DB接続情報」に入力欄の情報を書き換えたらOKだが一応、初期表示時と変更後の状態をキャプチャで添付する。

初期表示時
image.png

変更後
image.png

Connection Testをクリックして問題なければOKをクリック

image.png
A5:SQL Mk-2内でDBに別名をつけれるので今回はすぐ消す/sample/connect_testでOK

image.png
Closeをクリック

image.png
ちょっと端折ったけどこのように参照することが出来る。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?