データベース作成流れ
データベース作成(スキーマ作成)
→テーブル作成
→ユーザー作成
→権限付与
→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稼働・停止
制御スクリプトオプション
オプション | 操作 |
---|---|
start | mysqld デーモンを起動します。 |
stop | mysqld デーモンを停止します。 |
restart | mysqld デーモンを再起動します。 |
status | mysqld デーモンの起動状況を確認します。 |
condrestart | mysqld デーモンが動作しているかを確認後、再起動します。(/var/lock/subsys/mysqld が存在するとき再起動します。) |
MySQL を起動するには、以下のコマンドを実行します。
# /etc/init.d/mysqld start |
MySQL を停止するには、以下のコマンドを実行します。
# /etc/init.d/mysqld stop |
Turbolinux 11 Server 起動時に MySQL を自動的に開始するには、以下のように chkconfig コマンドを実行しておきます。
# chkconfig mysqld on |
'DataBase > DataBase Basic' 카테고리의 다른 글
[mysql]유저삭제 (0) | 2018.08.31 |
---|---|
[mysql]디폴트 유저생성, 권한 부여로 유저생성 (0) | 2018.08.31 |
yum으로 mysql설치(yum 레포지토리 초기화, yum 레포지토리 추가, mysql인스톨, (0) | 2018.07.19 |
MySQL에 일본어 insert문이 작동되지 않는경우 ; mysql의 언코딩타입 변경하기 (0) | 2018.06.22 |
데이터베이스 사용자 계정으로 로그인, 계정 분실 시 사용자 계정으로 로그인후 검색, 계정 생성, 계정 삭제 (0) | 2018.03.06 |