データベース作成流れ

データベース作成(スキーマ作成)

→テーブル作成

→ユーザー作成

→権限付与

→Mysql稼働


データベース作成




データベースを作成するSQL文は以下の通りです。

mysql -u root -- rootでログイン

 CREATE DATABASE データベース名
 [CHARACTER SET = 文字コード名, COLLATION = COLLATION名];

 ※ []内は必須ではないオプションです

データベース作成時に利用できるオプションは文字コードCHARACTER SETおよび文字の照合順序COLLATION です。サーバ全体で文字コードを指定している場合には個別のデータベースで再度指定する必要は通常はありません。なんらかの理由で特定のデータベースの文字コードを変更したい場合のみに変更します。

文字の照合順序とは、例えばひらがなとカタカナ、または全角と半角のある文字、またはを別の文字を同一の文字と見なすかなどを挙動を設定します。どのような文字か同一と見なされるかは、MySQLユーザ会会長とみたまさひろさんのブログにまとめられていますので参照してください。


テーブル作成


データベースを作成するSQL文は以下の通りです。主なオプションのみ記載します。

CREATE TABLE テーブル名
  (列の定義) [テーブルオプション]

列の定義は、列の名称とデータ型、列のオプションの組み合わせになります。列のオプションでは、その列をインデックスに指定する場合は種類などが設定できます。他にも列ごとに文字コードを定義することや、初期値および制約の設定もオプションとして設定可能です。具体的な構文の例は後ほど改めて紹介します。

インデックスの種類
種類定義オプション名詳細
主キーPRIMARY 行を識別するための列。重複する値は格納できず、NULLも格納できない。
ユニークキーUNIQUE主キーに似て、重複する値は格納できないが、NULLは格納できる。
ノンユニークキーKEY重複する値は格納できる。
空間インデックスSPATIAL座標などの空間情報を格納するための特殊なインデックス ※MyISAMのみ
全文検索インデックスFULLTEXT全文検索のための特殊なインデックス ※日本語非対応



ユーザー作成

mysql -u root -- rootでログイン create user {user名}@localhost identified by {パスワード} -- ユーザー作成

作成したユーザーの確認

use mysql -- DB'mysql'に移動 select user,host from mysql.user -- ユーザーを確認

権限追加

構文

grant {権限内容} on {権限対象} to {ユーザー名}@{ホスト名} identified by {パスワード}
*権限対象はdatabase.tableで構成。test_db.*はtest_dbのあらゆるTableへの権限付与を意味


*Mysql버전 8부터 identified 이후가 없어짐

grant select on test_db.* to test@{権限付与対処のIPアドレス} identified by {パスワード};

->

grant select on test_db.* to test@{権限付与対処のIPアドレス}

-- test_dbのselect権限をtestユーザーに追加 grant select on test_db.* to test@{権限付与対処のIPアドレス} identified by {パスワード}; -- test_dbの全権限をtestユーザーに追加 grant all on test_db.* to test@{権限付与対処のIPアドレス} identified by {パスワード}; -- 全DBの全権限をtestユーザーに追加 grant all on *.* to test@{権限付与対処のIPアドレス} identified by {パスワード};


--権限確認

SHOW GRANTS for 'hoge'@'%';



追加した権限の確認

  • dbテーブル

host名、db名、user名、追加されている権限一覧を確認

    select user,host from mysql.user


    • 追加したdbへのアクセス
    -- 作成したユーザーでログイン
    mysql -u test -p
    
    -- db確認。 権限を追加したDBを確認できる。
    show databases
    


    • 外部から追加したdbへのアクセス
    • -- 作成したユーザーでログイン mysql -h [ターゲットのDBサーバー] -u test -p -- db確認。 権限を追加したDBを確認できる。 show databases


    権限削除

    構文

    revoke {権限内容} on {権限対象} to {ユーザー名}@{ホスト名} identified by {パスワード}

    -- testユーザーからfile権限を削除
    revoke file on *.* from test@localhost;





    Mysql稼働・停止


    制御スクリプトオプション

    オプション操作
    startmysqld デーモンを起動します。
    stopmysqld デーモンを停止します。
    restartmysqld デーモンを再起動します。
    statusmysqld デーモンの起動状況を確認します。
    condrestartmysqld デーモンが動作しているかを確認後、再起動します。(/var/lock/subsys/mysqld が存在するとき再起動します。)

    MySQL を起動するには、以下のコマンドを実行します。

    # /etc/init.d/mysqld start

    MySQL を停止するには、以下のコマンドを実行します。

    # /etc/init.d/mysqld stop

    Turbolinux 11 Server 起動時に MySQL を自動的に開始するには、以下のように chkconfig コマンドを実行しておきます。

    # chkconfig mysqld on









    + Recent posts