mysql の設定を行う。

初期設定を行う

mysql_secure_installation

下記の設定が行える。
rootパスワードの設定
anonymousユーザの削除
rootでリモート接続設定
testDBの削除

文字コードなどの設定を行う。

下記のファイルを修正する。

vim /etc/my.cnf

文字コードの設定とデフォルトテーブルの種別設定を行う。

[mysqld]
character-set-server=utf8
default-storage-engine=InnoDB
innodb_file_per_table 

接続確認

mysql -u root -p

Access denied for user 'root'@'localhost' (using password: YES)のようなエラーとなる場合は、パスワードが間違っている可能性が高い。

データベース作成

CREATE DATABASE sample;
use sample;

作成した後、作成したデータベースに移動する。
これをしないと権限設定時などでNo database selectedとエラーになる。

ユーザ追加

CREATE USER 'ユーザ名'@'localhost' IDENTIFIED BY 'パスワード';

外からもアクセス可能にするにはlocalhostを接続先のドメインにする。
どこからでも接続可能にする場合は%とする。CREATE USER 'ユーザ名'@'%' IDENTIFIED BY 'パスワード';

権限追加

全ての権限をつける。

GRANT all ON [db or dable] TO 'ユーザ名'@'localhost';

全権限つける場合は[db or dable]に 「*.*」を指定する。

ユーザ名を間違っていると下記のエラーが表示される。
パスワードが要件を満たしているか以外にもユーザ名の指定が正しいかの確認が必要。

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

ユーザ名がuser1の場合、TO 'user1'@'localhost' となる。
権限をつけたユーザが既にDBに接続している場合、権限を反映させるには再接続が必要。

下記のSQLで権限情報が確認できる。

SHOW GRANTS FOR 'ユーザ名'@'localhost';

%で権限をつけたい場合は、SHOW GRANTS for 'ユーザ名'@'%';

権限の削除はREVOKE ALL PRIVILEGES ON [db or dable] FROM 'ユーザ名'@'localhost';

下記のSQLでユーザ情報が確認ができる。

select user,host from mysql.user
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.