モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

工作HardwareHub ロゴ画像 (Laptop端末利用時)
工作HardwareHub ロゴ画像 (Mobile端末利用時)

MySQL 5.7 インストール手順

モーダルを閉じる

ステッカーを選択してください

モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

公開日公開日
2016/11/08
最終更新最終更新
2021/01/12
記事区分記事区分
一般公開

目次

    アカウント プロフィール画像 (サイドバー)

    MySQLの運用やレプリケーション設定など、実用的なノウハウを共有します。

    0
    ステッカーを贈るとは?

    2016/11/07 時点、多くの環境では yum レポジトリ等に mysql 5.7 が含まれていません。公式ページからダウンロードしてインストールする手順を二つまとめます。

    yum レポジトリを追加する手順

    Installing MySQL on Linux Using the MySQL Yum Repository (mysql 5.7) をもとにしています。

    rpm のインストール

    Download MySQL Yum Repository から 5.7 (GA) の yum repository rpm をダウンロードします。例えば CentOS 6 であれば Red Hat Enterprise Linux 6 / Oracle Linux 6 (Architecture Independent), RPM Package を選択します。以下のコマンドで yum レポジトリを追加します。

    sudo rpm -ivh mysql57-community-release-el6-9.noarch.rpm
    

    レポジトリが追加されたこと、および mysql57-communityenabled=1 となっていることを確認します。

    less /etc/yum.repos.d/mysql-community.repo
    

    mysql-server のインストール

    yum コマンドで mysql をインストールします。

    yum info mysql-community-server
    sudo yum install mysql-community-server
    

    既存の他のバージョンの mysql と競合する場合は以下のコマンドで個別に remove してからインストールします。

    rpm -qa | grep mysql
    sudo yum remove xxx
    

    インストールに成功した後は、設置されたファイルを確認してみましょう。

    rpm -ql mysql-community-server | less
    

    mysqld の起動

    sudo service mysqld start
    sudo service mysqld status
    

    root 初期パスワードの確認

    mysql 5.7 では root に初期パスワードが設定されています。ログファイルに記載されているため grep で確認して変更します。

    sudo grep 'temporary password' /var/log/mysqld.log
    

    記載されていない場合はログ全体を確認します。

    sudo less /var/log/mysqld.log
    

    過去にインストールしていた mysql のデータが残存している場合があります。

    grep 'datadir' /etc/my.cnf
    sudo ls /var/lib/mysql
    

    そのような場合は datadir を削除してから再度 start します。データが削除されるため実行時は注意してください。

    sudo service mysqld stop
    sudo su -l
    rm -rf /var/lib/mysql/*
    exit
    sudo service mysqld start
    sudo service mysqld status
    

    root パスワードの変更

    確認した初期パスワードでログインします。

    mysql -uroot -p
    

    以下のコマンドでパスワードを変更します。

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
    

    パスワードなしでログインできるようにするためには /etc/my.cnf を編集して再起動します。

    sudo vim /etc/my.cnf
    skip-grant-tables  ← [mysqld] セクションに追記
    sudo service mysqld restart
    

    セキュリティ上の観点から好ましくない状況もありそうですが、初期パスワード変更後の root ユーザーでプラグインをアンインストールすることでもパスワードなしログインを実現できます。

    UNINSTALL PLUGIN validate_password;
    SET PASSWORD = '';
    

    パスワードが失効しない設定であることを確認

    mysql 5.7 には、一定期間が経過するとパスワードを失効させてログインできなくする機能があります。不要な場合は、以下のコマンド結果が 0 であることを確認して無効になっていることを確認します。

    select @@default_password_lifetime;
    

    apt レポジトリを追加する手順

    Debian9 の場合は以下のようにします

    wget https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb
    sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb
    sudo apt update
    sudo apt install mysql-community-server
    sudo apt install mysql-community-client
    sudo apt install libmysqlclient-dev
    

    ビルド済みのバイナリを tar.gz でダウンロードする手順

    Installing MySQL on Unix/Linux Using Generic Binaries (mysql 5.7) をもとにしています。

    tar.gz ファイルのダウンロードおよび解凍

    Download MySQL Community Server から Linux - GenericCompressed TAR Archive をダウンロードして /usr/local/ に解凍します。以下は 64bit 版の例です。

    sudo mv mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz /usr/local/
    sudo su -l
    cd /usr/local/
    tar zxvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
    

    mysql ユーザーの作成

    sudo groupadd mysql
    sudo useradd -r -g mysql -s /bin/false mysql
    

    ファイル権限を mysql ユーザーに設定

    sudo su -l
    cd /usr/local/
    ln -s /usr/local/mysql-5.7.16-linux-glibc2.5-x86_64 ./mysql
    cd mysql/
    mkdir mysql-files
    chmod 750 mysql-files
    chown -R mysql .
    chgrp -R mysql .
    

    datadir の初期化

    例えば datadir を /data/mysql にしたい場合は以下のコマンドを実行します。root ユーザーの初期パスワードが表示されますのでメモしておきましょう。

    sudo mkdir -p /data/mysql
    sudo /usr/local/mysql/bin/mysqld --no-defaults --initialize --user=mysql --datadir=/data/mysql
    sudo /usr/local/mysql/bin/mysql_ssl_rsa_setup --no-defaults --datadir=/data/mysql
    sudo chown -R mysql: /data/mysql
    

    my.cnf の設置

    sudo cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
    sudo vim /etc/my.cnf
    

    設定を編集します。

    [mysqld]
    datadir=/data/mysql
    socket=/tmp/mysql.sock
    user=mysql
    
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    
    [mysql]
    socket=/tmp/mysql.sock
    

    pid 用のディレクトリを作成します。

    sudo mkdir /var/run/mysqld
    sudo chown mysql: /var/run/mysqld
    

    mysqld の起動

    sudo /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
    

    root パスワードの変更

    確認した初期パスワードでログインします。

    /usr/local/mysql/bin/mysql -uroot -p
    

    以下のコマンドでパスワードを変更します。

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
    

    パスワードなしでログインできるようにするためには /etc/my.cnf を編集して再起動します。

    sudo vim /etc/my.cnf
    skip-grant-tables  ← [mysqld] セクションに追記
    

    セキュリティ上の観点から好ましくない状況もありそうですが、初期パスワード変更後の root ユーザーでプラグインをアンインストールすることでもパスワードなしログインを実現できます。

    UNINSTALL PLUGIN validate_password;
    SET PASSWORD = '';
    

    パスワードが失効しない設定であることを確認

    mysql 5.7 には、一定期間が経過するとパスワードを失効させてログインできなくする機能があります。不要な場合は、以下のコマンド結果が 0 であることを確認して無効になっていることを確認します。

    select @@default_password_lifetime;
    

    ログローテートの設定や PATH 設定

    /usr/local/mysql/bin/mysql/ 以下のファイルに PATH を通したり logrotate するため設定などを適宜必要に応じて行います。

    0
    詳細設定を開く/閉じる
    アカウント プロフィール画像 (本文下)

    MySQLの運用やレプリケーション設定など、実用的なノウハウを共有します。

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    さらに詳しく →
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      関連記事

      • MySQL レプリケーション設定 (2段, 3段)
        MySQL DB サーバは自身へのクエリをバイナリログとして書き出すことができます。レプリケーションとは、追加の MySQL DB サーバが、別の MySQL DB サーバが出力したバイナリログを自分のリレーログとよばれるログにコピーして、更にリレーログに記載されたクエリを自分自身のテーブルに実行する機能です。バイナリログを出力する DB をマスターとよび、自分のリレーログにコピーする DB をス...
        しおまめしおまめ10/7/2021に更新
        いいねアイコン画像0
      • MyBatis 3 サンプルコード (Java/MySQL/Gradle)
        MyBatis は、JDBC を直接利用せずに、XML ファイル等で用意した SQL 文を利用して DB にアクセスするための Java ライブラリです。内部的には JDBC が利用されているため、JDBC のインストールは必要です。同様のライブラリに Hibernate ORM があります。DB は特に MySQL を対象として、MyBatis バージョン 3 の
        HARUTOHARUTO8/19/2019に更新
        いいねアイコン画像0
      • MySQL HandlerSocket Plugin の簡単な使用方法
        HandlerSocket は MySQL プロセス内のスレッドとして動作する、MySQL の NoSQL フロントエンドです。独自のプロトコルを用いて TCP 通信を行います。SQL 構文の解析が不要、プロトコルがシンプルなどの理由によって、単純な DB アクセスが高速に実行可能になります。MariaDB であれば[標準プラグインとして付属](https://mariadb.co
        しおまめしおまめ10/7/2021に更新
        いいねアイコン画像0
      • Spring Boot から MyBatis を利用するための設定 (Gradle/MySQL)
        MyBatis を Spring Boot で利用するための基本的な設定およびサンプルコードをまとめます。サンプルコードにおいては、特に MySQL を対象とします。 MyBatis Spring-Boot-Starter チュートリアル
        suzusuzu10/4/2021に更新
        いいねアイコン画像0
      • MySQL InnoDB Memcached Plugin の簡単な使い方
        MySQL の InnoDB ストレージエンジンに直接 memcached プロトコルで高速にアクセスするためのプラグインが存在します。仕組みは MySQL HandlerSocket Plugin と似ています。図解した公式ページはこちらです。MySQL 5.6 を対象として簡単に使い方をまとめます。 参考ページ [14.17 InnoDB
        しおまめしおまめ10/9/2017に更新
        いいねアイコン画像0