目录
版本说明:
MySQL 5.2.27
CentOS 7.6 x64
MySQL 5.7.27源码包:
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
Boost包:
https://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
软件包备用下载地址:
链接:https://pan.baidu.com/s/1c4F1QU4vrcbHTDtOLJqF3g
提取码:n0bl
1 准备工作
1.1 下载MySQL源码包
访问https://dev.mysql.com/downloads/mysql/5.7.html#downloads按下图进行下载。
在该界面下方点击“No thanks,jusr start my download.”
下载完成后,将tar包上传至服务器,我将其放在/usr/local路径下,然后做MD5校验。
# pwd
/usr/local
# md5sum mysql-5.7.27.tar.gz
d5eece21695f157cfbf87a75175973cd mysql-5.7.27.tar.gz
1.2 必要软件
除了需要安装cmake、ncurses外,安装该版本MySQL需要安装Boost C++库。
# pwd
/usr/local
# tar xf boost_1_59_0.tar.gz
# mv boost_1_59_0 boost
# yum -y install cmake ncurses-devel gcc-c++
1.3 创建用户和组
# groupadd mysql
# useradd -r -g mysql -s /bin/false mysql
1.4 配置路径
# mkdir -p /data/3306/data
# chown mysql:mysql -R /data
# chmod 1777 -R /tmp
2 编译安装MySQL
下面开始编译安装,如果使用虚拟机建议将配置调大,不然时间会比较长。
# pwd
/usr/local
# tar xf mysql-5.7.27.tar.gz
# cd mysql-5.7.27
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.27 -DMYSQL_DATADIR=/data/3306/data -DSYSCONFDIR=/data/3306 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/data/3306/mysql.sock -DENABLED_LOCAL_INFILE=1 -DENABLE_DOWNLOADS=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_DEBUG=0 -DMYSQL_MAINTAINER_MODE=0 -DWITH_SSL:STRING=bundled -DWITH_ZLIB:STRING=bundled -DWITH_BOOST=/usr/local/boost
最后的3行输出如下
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/mysql-5.7.27
开始编译
# make && make install
最后的3行输出如下。
-- Installing: /usr/local/mysql-5.7.27/./COPYING-test
-- Installing: /usr/local/mysql-5.7.27/./README-test
-- Installing: /usr/local/mysql-5.7.27/share/aclocal/mysql.m4
创建软连接
# ln -s /usr/local/mysql-5.7.27/ /usr/local/mysql
# chown -R mysql:mysql /usr/local/mysql
3 编辑配置文件
# cat /etc/my.cnf
[mysqld]
port=3306
server-id=17
pid-file=/data/3306/mysqld.pid
basedir=/usr/local/mysql
datadir=/data/3306/data
log_error=/data/3306/error.log
socket=/data/3306/mysql.sock
4 配置环境变量
# echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
# source /etc/profile
5 初始化数据库
# mysqld --initialize --user=mysql
# pwd
# /usr/local/mysql-5.7.27/support-files
# cp mysql.server /etc/init.d/mysqld
# chmod +x /etc/init.d/mysqld
6 启动MySQL数据库
# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!
# netstat -antulp|grep 3306
tcp6 0 0 :::3306 :::* LISTEN 34711/mysqld
7 修改密码
# cat /data/3306/error.log|grep 'A temporary password'
2019-08-08T09:14:49.588875Z 1 [Note] A temporary password is generated for root@localhost: dw,gFOvq5jqC
# mysql -u root -p
Enter password: --输入dw,gFOvq5jqC
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.27
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mysql> set PASSWORD=PASSWORD('root');
Query OK, 0 rows affected, 1 warning (0.00 sec)
参考资料:
https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
https://blog.youkuaiyun.com/sssssscccccc/article/details/80919826
Tank
2019.8.8