ソースコードコンパイルmariadb-10.0.12データベースのインストール


ソースコードインストールmariadb-10.0.12
1.ソースパッケージの取得
mariadb-10.0.12.tar.gz
2.コンパイル環境準備
# yum groupinstall -y Development Tools
# yum install -y ncurses-devel openssl-devel openssl

3.mysqlユーザーの作成
# groupadd mysql
# useradd -s /sbin/nologin -g mysql -M mysql
# id mysql
uid=500(mysql) gid=500(mysql) groups=500(mysql)
#           ;
# mkdir /mydata/data -pv
# chown mysql:mysql /mydata/data/ -R

4.コンパイルインストールmariadb-10.0.12
ソースパッケージの解凍:
# tar xf mariadb-10.0.12.tar.gz 
cmakeコンパイル命令の紹介:
インストールファイルのインストールパスを指定するときによく使用するオプション:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/mydata/data
-DSYSCONFDIR=/etc

デフォルトでコンパイルされたストレージエンジンには、csv、myisam、myisammrg、heapが含まれます.他のストレージエンジンをインストールするには、次のようなコンパイルオプションを使用します.
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1

ストレージエンジンをコンパイルしないことを明確に指定するには、次のようなオプションを使用します.
-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1
  :
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1

SSLなどの他の機能をコンパイルする場合は、コンパイル時にライブラリを使用するか、ライブラリを使用しないかのいずれかのオプションを使用します.
-DWITH_READLINE=1
-DWITH_SSL=system
-DWITH_ZLIB=system
-DWITH_LIBWRAP=0

その他の一般的なオプション:
-DMYSQL_TCP_PORT=3306
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DENABLED_LOCAL_INFILE=1
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_DEBUG=0
-DENABLE_PROFILING=1

以前のコンパイルで生成されたファイルをクリーンアップするには、次のコマンドを使用します.
#make clean
#rm CMakeCache.txt

コンパイルインストールMariaDB:
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
          -DMYSQL_DATADIR=/mydata/data \
          -DWITH_INNOBASE_STORAGE_ENGINE=1 \
          -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
          -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
          -DWITH_READLINE=1 \
          -DWITH_SSL=system \
          -DWITH_ZLIB=system \
          -DWITH_LIBWRAP=0 \
          -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
          -DDEFAULT_CHARSET=utf8 \
          -DDEFAULT_COLLATION=utf8_general_ci

または、
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data  -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

または、
#./BUILD/compile-pentium64-max
コンパイルが完了したら、データベースをインストールします.
# make 
# make install

コメント:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql       //    
-DINSTALL_DATADIR=/mydata/data                //       
-DDEFAULT_CHARSET=utf8                      //  utf8  
-DDEFAULT_COLLATION=utf8_general_ci           //    
-DEXTRA_CHARSETS=all                         //         
-DENABLED_LOCAL_INFILE=1                     //         

注意事項:
     ,               。
#make clean
#rm -f CMakeCache.txt
#rm -rf /etc/my.cnf
  :Curses library not found.  Please install appropriate package,
    :
    ncurses-devel  
yum install ncurses-devel
           CMakeCache.txt   
rm CMakeCache.txt
      cmake ... 
          。

5.MariaDBのインストールの構成
# cd /usr/local/mysql/
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data
# ls /mydata/data/
aria_log.00000001  ib_logfile0  mysql-bin.000001  mysql-bin.state
aria_log_control   ib_logfile1  mysql-bin.000002  performance_schema
ibdata1            mysql        mysql-bin.index   test

6.mariadbプロファイルの作成と変更、テンプレート付き
# mkdir /etc/mysql
# cp support-files/my-large.cnf /etc/mysql/my.cnf
# vim /etc/mysql/my.cnf 
[mysqld]
port            = 3306
datadir         = /mydata/data
socket          = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
innodb_file_per_table = on
skip_name_resolve = on

サービススクリプトの作成:
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld 
# chkconfig --list mysqld
# chkconfig --add mysqld

mysqldサービスの起動、テストの起動
# service mysqld start
Starting MySQL.                                            [  OK  ]

7.環境変数の設定:
]# vim /etc/profile.d/mysqld.sh
MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH

環境変数をロード:
# source/etc/profile.d/mysqld.sh
MySQLへの接続
# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.0.12-MariaDB-log Source distribution
Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> quit
Bye

8.Mysqlのrootユーザーパスワードを変更し、リモート接続を開く
[root@tom2 mysql]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 10.0.12-MariaDB-log Source distribution
Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
#      localhost  ,     ;
MariaDB [(none)]> grant all privileges on *.* to root@'localhost' identified by 'oracle';
Query OK, 0 rows affected (0.00 sec)
#    ip  127.0.0.1  ,     ;
MariaDB [(none)]> grant all privileges on *.* to root@'127.0.0.1' identified by 'oracle';
Query OK, 0 rows affected (0.00 sec)
#      mysql;
MariaDB [(none)]> use mysql
Database changed
#  root       ;
MariaDB [mysql]> update user set password = password('oracle') where User='root';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 4  Changed: 2  Warnings: 0
#  root       ;
MariaDB [mysql]> select Host,User,Password from user where User='root';
+----------------+------+-------------------------------------------+
| Host           | User | Password                                  |
+----------------+------+-------------------------------------------+
| localhost      | root | *2447D497B9A6A15F2776055CB2D1E9F86758182F |
| tom2.stu31.com | root | *2447D497B9A6A15F2776055CB2D1E9F86758182F |
| 127.0.0.1      | root | *2447D497B9A6A15F2776055CB2D1E9F86758182F |
| ::1            | root | *2447D497B9A6A15F2776055CB2D1E9F86758182F |
+----------------+------+-------------------------------------------+
4 rows in set (0.00 sec)
#           ;           ,              ;
MariaDB [mysql]> select user,host,password from user;    
+------+----------------+-------------------------------------------+
| user | host           | password                                  |
+------+----------------+-------------------------------------------+
| root | localhost      | *2447D497B9A6A15F2776055CB2D1E9F86758182F |
| root | tom2.stu31.com | *2447D497B9A6A15F2776055CB2D1E9F86758182F |
| root | 127.0.0.1      | *2447D497B9A6A15F2776055CB2D1E9F86758182F |
| root | ::1            | *2447D497B9A6A15F2776055CB2D1E9F86758182F |
|      | localhost      |                                           |
|      | tom2.stu31.com |                                           |
+------+----------------+-------------------------------------------+
6 rows in set (0.00 sec)
MariaDB [mysql]> \q
Bye

9.MariaDBが提供するセキュリティ設定スクリプトを使用して、データベースのセキュリティ構成を行います.
MariaDBはいくつかの構成スクリプトを提供しています.
[root@tom2 mysql]# cd $MYSQL_HOME/bin
[root@tom2 bin]# ls
aria_chk           mysqlbinlog                 mysql_plugin
aria_dump_log      mysqlbug                    mysql_secure_installation
aria_ftdump        mysqlcheck                  mysql_setpermission
aria_pack          mysql_client_test           mysqlshow
aria_read_log      mysql_config                mysqlslap
innochecksum       mysql_convert_table_format  mysqltest
msql2mysql         mysqld                      mysql_tzinfo_to_sql
myisamchk          mysqld_multi                mysql_upgrade
myisam_ftdump      mysqld_safe                 mysql_waitpid
myisamlog          mysqldump                   mysql_zap
myisampack         mysqldumpslow               mytop
my_print_defaults  mysql_find_rows             perror
mysql              mysql_fix_extensions        replace
mysqlaccess        mysqlhotcopy                resolveip
mysqladmin         mysqlimport                 resolve_stack_dump

mysqlを使いますsecure_インストールこのスクリプトは、セキュリティ構成を行います.
[root@tom2 bin]# mysql_secure_installation 
/usr/local/mysql/bin/mysql_secure_installation: line 379: find_mysql_client: command not found
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): 
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
You already have a root password set, so you can safely answer 'n'.
#  root     ;
Change the root password? [Y/n] Y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
#      ;
Remove anonymous users? [Y/n] Y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
#  root      ;
Disallow root login remotely? [Y/n] Y
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
#   test   ;
Remove test database and access to it? [Y/n] n
 ... skipping.
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
#       ;
Reload privilege tables now? [Y/n] Y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

10.セキュリティ設定データベースが完了するとmysqlを使用してデータベースにログインできません.しかし、通常、mysql-u root-pを使用するのは面倒で、便利にするために、ユーザーホームディレクトリにmysqlのユーザー名とパスワードを持つユーザーを作成することができます.my.cnfはプロファイルを非表示にしてデータベースにログインする.
パスワードを設定してmysqlコマンドを使用するとログインが禁止されます.
# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

rootホームディレクトリに隠しファイルを作成するには、次の手順に従います.
[root@tom2 ~]# vim .my.cnf
[mysql]
user = root
password = oracle
host =  127.0.0.1

これによりmysqlがユーザー名パスワードを入力せずにデータベースに直接ログインすることができ、操作が便利になります.
これで、ソースコードコンパイルインストールMariaDBデータベースが完了します.