# 系統:CentOS 6.7 x64
# 安裝目錄:/app/local/mysql
# 數據目錄:/app/local/data
yum -y install gcc gcc-c++ ncurses-devel bison
# 1. CMake 3.1+
wget https://cmake.org/files/v3.1/cmake-3.1.3.tar.gz
tar zxvf cmake-3.1.3.tar.gz && cd cmake-3.1.3
./configure && make && make install
# 2. Boost 1.59.0(MySQL 5.7 強依賴)
wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
tar zxvf boost_1_59_0.tar.gz
mkdir -p /usr/local/boost
mv boost_1_59_0/* /usr/local/boost/
wget https://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.11.tar.gz
tar zxvf mysql-5.7.11.tar.gz && cd mysql-5.7.11
cmake \
-DCMAKE_INSTALL_PREFIX=/app/local/mysql \
-DMYSQL_DATADIR=/app/local/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_USER=mysql \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost
make && make install
# 用戶權限
groupadd mysql
useradd -g mysql -s /bin/false mysql
chown -R mysql:mysql /app/local/data
chown -R mysql:mysql /app/local/mysql
# 初始化(生成隨機 root 密碼)
cd /app/local/mysql/bin
./mysqld --initialize --user=mysql --basedir=/app/local/mysql --datadir=/app/local/data
# 配置文件
mv /etc/my.cnf /etc/my.cnf.bak
cp ../support-files/my-default.cnf /etc/my.cnf
# 服務註冊
cp ../support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
chkconfig mysqld on
service mysqld start
# 1. 用隨機密碼登錄(查看 ~/.mysql_secret 或錯誤日誌)
mysql -u root -p'random_pass'
# 2. 修改密碼
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
FLUSH PRIVILEGES;
注意:MySQL 5.7.6+ PASSWORD() 返回認證字符串,無需 UPDATE user SET authentication_string=...。
mysql -u root -p123456 -e "SELECT VERSION(); SHOW VARIABLES LIKE 'datadir';"