Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
139
Help us understand the problem. What is going on with this article?
@nooboolean

CentOS7にMySQLをインストールして初期設定するまで

環境

  • macOS 10.12.6
  • MacBook pro 2016
  • VirtualBox 5.2.18
  • CentOS 7.6-1810
  • MySQL 5.7.25

リポジトリの追加

MySQLはyumコマンドでインストールします。
CentOS 7では公式のyumリポジトリにMySQLがないので、まずはMySQLの公式が用意しているリポジトリを追加します。
yumリポジトリ に関しては、こちらの記事をご覧ください。

rpmファイルをインストール

まず、MySQL Yum リポジトリをシステムのリポジトリリストに追加します。この操作は一度だけ必要で、MySQL が提供する RPM をインストールすることで実行できます。次の手順に従います。

MySQL公式より

ってことなので、公式が用意しているrpmファイルをインストールすれば、yumのリポジトリもいい感じに追加してくれるみたいです。yumコマンドのlocalinstallオプションを使うことでリモートにあるrpmファイルをインストールすることができます。
rpmコマンドを使ってのインストールも可能ですが、依存関係とかを考慮したインストールまではしてくれないので、yumでインストールしましょう。

# yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm 

上のURLはリモートにあるrpmファイルをインストールするためのもので、公式サイトの、下の画像の赤枠部分を、http://dev.mysql.com/get/の後に付け加えて完成です。(お使いのOSに合わせたものを選んでください)スクリーンショット 2019-01-25 2.42.39.png

リポジトリの確認

/etc/yum.repos.d配下に、mysql-community-source.repomysql-community.repoというリポジトリが作成されてるはずです。

# cd /etc/yum.repos.d/
# ls
mysql-community-source.repo  mysql-community.repo

このリポジトリが作成されて入れば、リポジトリの追加の確認は完了

yumでインストール

まずは、リポジトリの反映の確認。

# yum info mysql-community-server
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * extras: ftp-srv2.kddilabs.jp
 * updates: ftp.jaist.ac.jp
利用可能なパッケージ
名前                : mysql-community-server
アーキテクチャー    : x86_64
バージョン          : 5.7.25
リリース            : 1.el7
容量                : 165 M
リポジトリー        : mysql57-community/x86_64
要約                : A very fast and reliable SQL database server
URL                 : http://www.mysql.com/
ライセンス          : Copyright (c) 2000, 2018, Oracle and/or its affiliates.
                    : All rights reserved. Under GPLv2 license as shown in the
                    : Description field.
説明                ...(省略)

こんな感じでパッケージ情報が出てくれていれば、確認OK
あとは、インストール

# yum install -y mysql-community-server

うまくいけば、完了しました!と出るはずです。

MySQLのデーモンの起動と停止

確認

しっかりMySQLが入ってるかの確認

# mysqld --version

起動

# systemctl start mysqld

CentOS 6 以下は、serviceコマンドを使ってください。

起動の確認

# systemctl status mysqld

たくさん文字が出てきますが、Active: active (running)とどこかにあれば動いている証しです。

停止

# systemctl stop mysqld

自動起動の設定

これは、CentOSの起動・再起動の際に一緒にmysqldも起動するようにする設定です。
以下のコマンドでOK

# systemctl enable mysqld

CentOS 6 以下は、chkconfigコマンドを使ってください。

MySQLの初期設定

rootユーザーでログイン

MySQLは初期状態だと、ユーザーがrootしかいないので、一旦rootで入らなくてはならないです。
しかし、

# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

このように、パスワードなしでアクセスしようとすると怒られます。

初期パスワードの確認

当然、rootでアクセスするにはパスワードが必要なのですが、初期パスワードが何かわからないので、確認する必要があります。
初期パスワードは、mysqlのログの中で確認できます。ログの中身をrootでgrepした時の一番最初の行にちらっと記載されています。ログファイルは/var/log/mysqld.logです

# cat /var/log/mysqld.log | grep root
2019-01-24T17:10:57.681293Z 1 [Note] A temporary password is generated for root@localhost: [ここにパスワードの文字が記載されているはず]

# mysql -u root -p //上記のパスワードでログイン
Enter password: 

パスワードの変更

rootでログインできたら、自分の分かりやすいパスワードに変更しちゃいましょう!
変更の仕方は、以下です。
※8文字以上かつ英大文字・小文字・数字・記号を含めないとエラーで返されます。

# SET PASSWORD = PASSWORD('任意のパスワード')

これで変更完了!次回からは自分が設定したパスワードでログインしよう!

文字コードの確認と変更

設定されている文字コードの確認は以下で行えます。

mysql> show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

上の表記は、以下らしいです。この方の記事より

character_set_client : クライアント側で発行したsql文はこの文字コードになる
character_set_connection : クライアントから受け取った文字をこの文字コードへ変換する
character_set_database : 現在参照しているDBの文字コード
character_set_results : クライアントへ送信する検索結果はこの文字コードになる
character_set_server : DB作成時のデフォルトの文字コード
character_set_system : システムの使用する文字セットで常にutf8が使用されている

これを全部UTF-8にしてしまった方が良いみたい(エラーの原因になるから統一した方がいいってことかな?何故だろう…)

mysqlの設定ファイルは/etc/my.cnfです。
一回mysqlからログアウトして、設定しましょう。

# vi /etc/my.cnf

//以下をファイルの末尾に追記
character_set_server=utf8
skip-character-set-client-handshake

# systemctl restart mysqld //再起動させて変更を反映させる

mysqlに再度ログインして変更されているか確認してみましょう!

mysql> show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

全部UTF-8になってますね!
これで初期設定終わり!お疲れ様でした!

139
Help us understand the problem. What is going on with this article?
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
nooboolean
基本自分の備忘録用として残していますが、自分と同じことに迷った人に伝わりやすい記事を書くことが目標です。わかりにくい部分があればどしどしご指摘ください。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
139
Help us understand the problem. What is going on with this article?