CentOS7.4コンパイルインストールMySQL 5.7.20
4064 ワード
PHP Nginxはインストールしてすべて大した問題がありませんMysqlはインストールして問題の最も多い総括に出会うのですダウンロードパッケージ 処理依存関係 cmake構築mysql のコンパイルとインストールインストール完了後にMySQL を初期化 MySQL を起動 MySQL への接続 MySQLシステムctl管理 に追加
システムctl構成の再ロード
まとめ MySQL5.7 boostライブラリをインストールする必要がありますここで長い間 初期化と5.7バージョン以前は とは異なりました.コンパイル時にメモリが小さいと をコンパイルできない可能性があります.インストール後にMySQLタイムズを起動するエラーの多くは、権限の問題 です.初期パスワードを変更しないとMySQL を操作できません.
# mysql-5.7.20
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20.tar.gz
#
tar xzf mysql-5.7.20.tar.gz
# ( )
mv /root/mysql-5.7.20 /usr/local/mysql
# MySQL 5.7 boost
# cmake
# CMake Error at cmake/boost.cmake:81 (MESSAGE)
# boost_1_59_0
wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
#
tar xzf boost_1_59_0.tar.gz
# mysql boost ( boost )
cp -R boost_1_59_0 /usr/local/mysql/boost/
yum install cmake cmake-gui gcc-c++ ncurses-devel
// mysql
useradd -s /sbin/nologin mysql
// mysql
mkdir -p /data/mysql
//
chown -R mysql:mysql /data/mysql
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DMYSQL_DATADIR=/data/mysql/ -DSYSCONFDIR=/etc/ -DWITH_BOOST=/usr/local/mysql/boost/
#
CMAKE_INSTALL_PREFIX
#
MYSQL_DATADIR
#
SYSCONFDIR
# boost
WITH_BOOST
# cmake
1:
CMake Error: your C compiler: "CMAKE_C_COMPILER-NOTFOUND" was not found. Please set CMAKE_C_COMPILER to a valid compiler path or name.
:
// gcc
yum install gcc-c++
2:
CMake Error at cmake/readline.cmake:64 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel
:
yum install ncurses-devel
CMakeCache.txt cmake
make
make install
# mysql make make install
# mysql
# 1G 30% 4G
# MySQL5.7.20 2G ( )
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
# MySQL
--initialize
# MySQL
--user=mysql
# MySQL
--basedir=/usr/local/mysql
# MySQL
--datadir=/data/mysql
#
A temporary password is generated for root@localhost: 5-h1Bbf*EQwk
: 5-h1Bbf*EQwk
# MySQL
/usr/local/mysql/support-files/mysql.server
#
cp /usr/local/mysql/support-files/mysql.server /usr/local/mysql/mysqld
# MySQL
/usr/local/mysql/mysqld start
#
1:
MySQL.2017-11-09T09:27:48.949025Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
:
MySQL /etc/my.cnf
log-error
mysql log
mkdir log
chown mysql:mysql log
2:
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
:
/var/lib/mysql/ mysql.sock
/tmp/
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
mysql.sock my.cnf
/usr/local/mysql/mysqld start
/usr/local/mysql/bin/mysql -h localhost -uroot -p
# : 5-h1Bbf*EQwk
#
show databases;
#
set password for root@localhost = password('MaShen');
#
flush privileges;
#
show databases;
# mysql.service
[Unit]
Description=mysql
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/mysql/pid/mysql.pid
ExecStart=/usr/local/mysql/mysqld start
ExecStop=/usr/local/mysql/mysqld stop
ExecRestart=/usr/local/mysql/mysqld restart
ExecStatus=/usr/local/mysql/mysqld status
PrivateTmp=true
[Install]
WantedBy=multi-user.target
システムctl構成の再ロード
systemctl daemon-reload
まとめ