CentOS7にMariaDBを構築する方法


インストール

  • fastermirror導入

    terminal
    yum -y install yum-fastestmirror
    
  • すでに古いバージョンが入っている(かもしれない)ので、一旦削除する

    terminal
    yum -y remove mariadb*
    
  • GPGキー取得 & yumレポジトリを追加

    terminal
    rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    
    cat << \EOS > /etc/yum.repos.d/mariadb.repo
    [mariadb]
    name=MariaDB
    baseurl=http://yum.mariadb.org/10.1/centos7-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1
    enabled=0
    EOS
    
  • MariaDBサーバをインストール

    terminal
    yum -y install mariadb-server --enablerepo=mariadb
    

設定&起動

  • cnfファイルを配置

    terminal
    cat << \EOS > /etc/my.cnf.d/local.cnf
    [mysqld]
    
    # 文字コード設定
    character-set-server=utf8mb4
    skip-character-set-client-handshake
    
    # リンクテーブル作成を許容する
    symbolic-links=0
    
    # メモリサイズ拡張
    max_allowed_packet=128MB
    
    # テーブル、カラム名を小文字に統一
    lower_case_table_names=1
    
    # InnoDB設定
    innodb_buffer_pool_size = 512M
    
    # indexサイズ拡張対応
    innodb_large_prefix=1
    innodb_file_per_table=1
    innodb_file_format=Barracuda
    innodb_file_format_max=Barracuda
    EOS
    
  • サービスを起動

    terminal
    service mariadb start
    

初期設定

  • mysql_secure_installationを使うと、下記の内容を対話形式で設定できる。

    • 現在のrootパスワードの確認(初期は空文字)
    • 新しいrootパスワードの設定
    • rootへのリモートログイン設定
    • anonymousユーザーの削除
    • testデータベースの削除
    • 上記設定変更の反映

セキュリティ設定

  • mysql_secure_installationを使う場合。

    terminal
    mysql_secure_installation
    
  • 同等のことを、Chef/Ansibleなどでやる場合は以下を参考に。。。

    terminal
    mysql -u root -p << \EOS
    /* rootユーザー作成 & パスワード設定 */
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'   IDENTIFIED BY '[password]' WITH GRANT OPTION;
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'           IDENTIFIED BY '[password]' WITH GRANT OPTION;
    /* anonymasユーザー削除 */
    DELETE FROM mysql.user WHERE User = '';
    /* testデータベース削除 */
    DROP DATABASE IF EXISTS test;
    /* 権限反映 */
    FLUSH PRIVILEGES;
    EOS
    

完了

  • 以上