以前も mysql 5.7 に関して同様のentryを記載していますが、 virtual boxで動作させている centos を ver.7.4 にした為、改めてinstall
先程のentryにも記載していますが、mysql 5.7.18 より、
my.cnf が提供されない為、mysql 5.6.40をinstallしています
mysql5.7 をsrcからinstall - end0tknr's kipple - 新web写経開発
MySQL :: MySQL 5.6 リファレンスマニュアル :: 2.9 ソースから MySQL をインストールする
$ cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)
前準備 - readline と ncurses の intall
以前は、とっくにreadlineやncurses (≒ curses) がinstall された centos7 環境に mysql をinstallしていたらしい。
そこで今回は、readline と ncurses を install
readline
$ ftp://ftp.cwru.edu/pub/bash/readline-6.3.tar.gz $ tar -xvf readline-6.3.tar.gz $ cd readline-6.3 $ configure $ make $ sudo make install
ncurses ≒ curses
https://www.gnu.org/software/ncurses/
https://invisible-island.net/ncurses/ncurses.html
$ sudo yum install ncurses-devel
mysql の build や install
$ tar -xvf mysql-5.6.40.tar.gz $ cd mysql-5.6.40 $ cmake . \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DENABLED_LOCAL_INFILE=true \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_READLINE=ON \ $ make $ make test $ sudo make install
設定
ユーザやグループ追加
$ sudo groupadd mysql $ sudo useradd -r -g mysql mysql
mysql_install_db 実行による data dirや my.cnfの作成
MySQL :: MySQL 5.6 リファレンスマニュアル :: 2.9.2 標準ソース配布を使用して MySQL をインストールする
dev.mysql.comのdocument のように単純?に scripts/mysql_install_db を実行すると data dir が /usr/local/mysql 以下に作成されます。
/usr/local/mysql 以下にデータがある構成は、好みではありませんので、「 --datadir=/var/mysql_data/ 」を追加しています。
( dev.mysql.comのdocument では、/usr/local/mysql 以下に data dir を作成する為、 余計な chown や chgrp の実行が必要です )
$ cd /usr/local/mysql $ sudo /usr/local/bin/perl \ scripts/mysql_install_db \ --user=mysql --datadir=/var/mysql_data/
edit /etc/my.cnf
先程の scripts/mysql_install_db により /usr/local/mysql/my.cnf が作成されますので、 /etc/my.cnf へ移動し、編集します。
$ sudo su - # cd /etc # mv /usr/local/mysql/my.cnf ./my.cnf # vi ./my.cnf
以下、編集内容
old) # basedir = ..... new) basedir = /usr/local/mysql old) # datadir = ..... new) datadir = /var/mysql_data
mysql 5.1頃から使用していたmy.cnfでは、 他にも様々、設定していましたが、上記だけの編集でも動作はするようです。
一旦、接続test
$ cd /usr/local/mysql $ sudo bin/mysqld_safe --user=mysql
上のようにmysqlのdaemonを起動し、 下のようにmysqlのclientで接続できれば、OKです。
$ /usr/local/mysql/bin/mysql -u root : Server version: 5.6.40 Source distribution Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. : mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.00 sec)
接続test完了後は、mysqlのdaemonを停止してOKです。
ただし、停止方法が分からなかった為、kill しています。
自動起動
自動起動の設定自体は、mysql.server を /etc/init.d 以下にcopyするだけです。 設定後、centosを再起動して、mysqlのdaemonが動作していることを確認しましょう。
$ sudo su - # cd /etc/init.d # cp /usr/local/mysql/support-files/mysql.server ./mysql.server # systemctl enable mysql.server # reboot