よくわからないエンジニア

よく分からないエンジニアの日々の記録

よくわからないエンジニア

CentOS7 mariadbソースインストール

最近仕事でmysqlを使う機会が多かったので、手元でdbサーバでも立てて検証しようと思ったのです。その際に、mysql5.7にするかmariadbを使うかで迷いました。
そもそもmariadbろくに使ったことが無かったので、良いも悪いも判断出来ません。折角なのでmariadbをソースインストールしてみました。

目次

ダウンロード

mariadbの公式からダウンロードしてきます。
最新版は10.2.8みたいですね。早速ダウンロードして解凍していきます。

# cd /usr/local/src
# wget https://downloads.mariadb.org/f/mariadb-10.2.8/source/mariadb-10.2.8.tar.gz/from/http%3A//ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/?serve
# mv index.html\?serve mariadb.src.tar.gz
# tar xvfz mariadb.src.tar.gz
# cd mariadb-10.2.8

mariadb-10.2.8-linux-systemd-x86_64.tar.gz (for systems with systemd)ってあったけど、こっちはなんだろう。。

インストール

sourceインストールはhttps://mariadb.com/kb/en/compiling-mariadb-from-sourceを読めとの事。
とりあえずcmakeを実行してみる。cmakeのアップデートが必要であれば以下も参考下さい。

www.unknownengineer.net

# cmake .
...
-- Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)

エラー。curl-develを入れる。

#  yum install curl-devel
# cmake .
…
CMake Error at /usr/local/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find GnuTLS (missing: GNUTLS_LIBRARY GNUTLS_INCLUDE_DIR)
  (Required is at least version "3.3.24")

GnuTLSが無いとの事。とりあえずdevelを入れます。

# yum install gnutls-devel
# cmake . 

これでとりあえず通りました。

cmake . -LHで使えるビルドオプションが出てきます。
普段はPREFIXを指定したりするのですが、mariadbはそのまま入れても、/usr/local/mysqlになるようなので、デフォルトでインストールします。最近は必要/不要がよく分かっていないのに、オプション付けるのやめるようにしました。必要だったら考えます。

# make
# make install

インストール完了。

起動スクリプト

とりあえず用意されている起動スクリプトを移動します。

#cp -p /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
my.cnf

mysql5.6では無くなっていましたが、mariadbからmy.cnfのサンプルが復活してますね。小規模環境なのでmy-small.cnfを使います。

# cd /usr/local/mysql
# mv support-files/my-small.cnf my.cnf
# vim my.cnf
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 240K
character-set-server = utf8  (←これだけ追加)

mariadb起動

ここも公式の通り作業していきます。

# chown -R mysql /usr/local/mysql
# /usr/local/mysql/scripts/mysql_install_db --user=mysql

色々表示されますが、とりあえず起動します。

# /etc/init.d/mysql start

無事に起動しました。ローカルからパスワードなしでログインします。

# /usr/local/mysql/bin/mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.2.8-MariaDB Source distribution

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

とりあえず起動→ログインまでいきました。後は必要に応じてパラメータを変更していきます。