ソースコードコンパイルインストールmysql-5.7.14

2708 ワード

1.mysql-5.7.14をダウンロードしてアップロードする.tar.gz
tar -zxf msql-5.7.14.tar.gz

2.依存パッケージのインストール
yum -y install gcc gcc-c++ ncurses ncurses-devel cmake

3.Boostライブラリのダウンロード
wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

4.ユーザーの追加
groupadd mysql
useradd -r -g mysql -s /bin/false mysql

5.プリコンパイル
cmake . \
-DCMAKE_INSTALL_PREFIX=/application/mysql-5.7.14 \
-DMYSQL_DATADIR=/application/mysql-5.7.14/data \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/software/boost_1_59_0 \
-DMYSQL_UNIX_ADDR=/application/mysql-5.7.14/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0

6.コンパイルインストール
make
make install

7.修正/etc/my.cnf
[mysqld]
datadir=/application/mysql/data
socket=/application/mysql/tmp/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character_set_server=utf8

8.権限の変更
chown -R mysql:mysql mysql-5.7.14/

9.データベース・ディレクトリの作成
mkdir data
chown mysql:mysql data

10.初期化
bin/mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data

11.暗号化接続の設定
bin/mysql_ssl_rsa_setup

12.システムサービスへの加入
cp support-files/mysql.server /etc/init.d/mysqld  
   mysqld      basedir datadir     
chkconfig mysqld on #          
chkconfig --list | grep mysqld  

13.起動再起動停止
service mysqld start  
service mysqld restart  
service mysqld stop  

14.ログインして初期パスワードを変更する
SET PASSWORD FOR 'root'@'localhost'=PASSWORD('newpassword');  

インストール中に発生した問題
Starting MySQL... ERROR! The server quit without updating PID file (/application/mysql/Rong.pid).

1.エラーログ/var/log/mysqldを表示します.logエラー原因チェック
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist 

2.理由:データベース権限テーブルの初期化時にデフォルトで作成される権限テーブルは、デフォルトディレクトリ/usr/local/mysql/varの下にあり、実際には/application/mysql/data
3.必要に応じて/etc/myを変更する.cnf下--datadirパラメータで問題を解決