Help us understand the problem. What is going on with this article?

Linux(CentOS7)でWebサーバーを構築する。 -MySQL導入編-

More than 3 years have passed since last update.

概要

前回の-php導入編-に引き続き、今回はMySQLを使えるようにする方法を綴ります。

今回も導入までは短いですが、設定とか含めるとちょっと長くなりそうです。 ('ω';)

※MySQL(データベース)を使用しない場合は導入不要です。
※運用中に試行錯誤しながら記載しているので記事の内容がちょこちょこ変動するかも知れません;

導入するもの

  • MySQL

手順

1. MySQLの導入

# yum -y install mariadb-server
導入は今まで同様にこれだけ。

とっても簡単ね!

え。なんで名前が mariadb かって?
はて…?

2. 動作確認

MySQLサーバーを起動

# systemctl start mariadb.service
起動!

MySQLにログインしてみる

# mysql -u root
MySQLにrootとしてログイン!

MariaDB [(none)]>
こんな感じになったら成功!

とりあえず導入フェイズはここまでで完了!

MySQLを終了する場合は、 \q を入力してEnter.(ッターン!)

設定など

運用にあたり、設定しておいた方が良さそうなものをピックアップしておくよ!

文字コードの設定

日本語とか色々柔軟に扱えるように文字コードをUTF-8に設定するよ!

# vim /etc/my.cnf
vimでMySQLの設定ファイルを開いてね!

[mysqld] の項目に、
character-set-server = utf8 を追加してね!

こんな感じ。

my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
character-set-server = utf8

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

!includedir /etc/my.cnf.d

編集が終わったら保存&終了!
:wq

ルートパスワードの設定

初期状態だとMySQLにパスワードなしでルートログイン出来てしまうので、パスワードを設定するよ。

まずはMySQLにログイン。
# mysql -u root

既存のユーザーリストを確認。
MariaDB [(none)]> SELECT host,user,password FROM mysql.user;

複数のレコードが表示されたかな?

+------------------+---------------+------------------------+
| host             | user          | password               |
+------------------+---------------+------------------------+
| loalhost         | root          |                        | # パスワード未設定のルートユーザー(1)
+------------------+---------------+------------------------+
| 999.999.999.999  | root          |                        | # パスワード未設定のルートユーザー(2)
+------------------+---------------+------------------------+
| 127.0.0.1        | root          |                        | # パスワード未設定のルートユーザー(3)
+------------------+---------------+------------------------+
| localhost        |               |                        | # 匿名ユーザー
+------------------+---------------+------------------------+

↑ここから、

  • パスワード未設定のルートユーザーにはパスワードの設定
  • 匿名ユーザーはユーザーの削除

を行うよ!

パスワード未設定のルートユーザー(1)のパスワードを設定
SET PASSWORD FOR root@localhost=PASSWORD('任意のパスワード文字列');

パスワード未設定のルートユーザー(2)のパスワードを設定
SET PASSWORD FOR root@'999.999.999.999'=PASSWORD('任意のパスワード文字列');

パスワード未設定のルートユーザー(3)のパスワードを設定
SET PASSWORD FOR root@'127.0.0.1'=PASSWORD('任意のパスワード文字列');

匿名ユーザーの削除
DELETE FROM mysql.user WHERE user="";



ここまでできたらもう一度ユーザーリストを確認してみよう!
MariaDB [(none)]> SELECT host,user,password FROM mysql.user;

こんな感じの結果が出たかな?

+------------------+---------------+------------------------+
| host             | user          | password               |
+------------------+---------------+------------------------+
| loalhost         | root          | *ABCDEFGHIJKLMNOPQRSTU |
+------------------+---------------+------------------------+
| 999.999.999.999  | root          | *ABCDEFGHIJKLMNOPQRSTU |
+------------------+---------------+------------------------+
| 127.0.0.1        | root          | *ABCDEFGHIJKLMNOPQRSTU |
+------------------+---------------+------------------------+

userが空のレコードが消えて、
userがrootのpasswordが空じゃなくなっていたら成功だよ!

一旦MySQLを終了させてね。
MariaDB [(none)]> \q

もう一度ログインするよ!
# mysql -u root

こんなエラーが表示されたかな?
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

このエラーが出たら、パスワードがきちんと設定されているよ!

次からはMySQLにログインする場合は、
# mysql -u root -p
このコマンドを使おう!

Enter password:
パスワードの入力を求められるので、さっき設定したパスワードを入力してEnter!

MariaDB [(none)]>
ちゃんとログインできたかな??



今回はだいぶ長くなっちゃいましたね…。
お疲れ様でした! ('-'*)

sango
広く浅くつまみ食いしてます。 _(:3」∠)_ その浅さ故に誤った情報を投稿してしまうことも多々あるかと思います。 先んじてお詫び申し上げます。 m(_ _)m 御免!
https://twitter.com/con_ton
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした