从源码安装MySQL

近期因工作需要,开始了对MySQL的学习。因为流程不熟悉,先后安装了两次MySQL,中间走了一些弯路。为了让大家少掉坑,也为了巩固自己的经验,下面以MySQL5.7.23-debug版本为例,对从源码安装MySQL的步骤做一个简单的梳理。

  • 1、从github-MySQL项目下获取git-server的路径:https://github.com/mysql/mysql-server.git,这是mysql的源码库,包含所有版本的mysql源码

  • 2、git clone https://github.com/mysql/mysql-server.git 下载源码到本地, 用tar -zxvf解压(需要提前安装好Git)

  • 3、5.7要添加boost库,因此需要单独下载boost库。针对MySQL5.7.23版本,网上推荐版本为1.59.0,boost所有版本的下载地址为:https://www.boost.org/users/history/

  • 4、修改build.sh中的编译选项,主要是修改boost库所在的目录,cmake路径和源码路径(需要提前安装好cmake)

  • 5、运行build.sh(其中运行了一个cmake),或者参考以下内容,进行源码编译:

[root@mysql software]#tar zxvf mysql-8.0.11.tar.gz
[root@mysql software]# cd mysql-8.0.11/
[root@mysql software]# mkdir Zdebug
[root@mysql software]# cd Zdebug

cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNODB_MEMCACHED=ON \
-DWITH_SSL=system \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DCOMPILATION_COMMENT="zsd edition" \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/tmp \
-DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock \
-DSYSCONFDIR=/data/mysqldata/3306 > /data/software/mysql-8.0.11/Zdebug/mysql_cmake80.log 2>&1

出现下列日志:

............
-- Configuring done
-- Generating done
-- Build files have been written to: /data/software/mysql-8.0.11/Zdebug
............
  • 6、进到debug目录,运行make package,打成安装包

  • 7、在mysql_root 文件夹下分别新建相应文件(base目录下放源码,base_phony下放软链接,log下放日志,data下放数据,tmp放tmp数据,其中base目录下用版本号区分,base_phony下直接链接到当前安装程序,其他目录下进一步用端口号命名,例如20220)将安装包放至相应目录

  • 8、初始化data目录:/../mysql_root/phony/20220/bin/mysqld --initialize-insecure --basedir=/../mysql_root/phony/20220 --datadir=/../mysql_root/data/20220

  • 9、使用以下命令在后台运行MySQL:/../mysql_root/phony/20220/bin/mysqld --defaults-file=/../mysql_root/data/20220/my.cnf &

  • 10、使用mysql -uroot -h127.1 -P20220指命令登录 (mysql默认路径在~/.bash_profile中,修改完,要使用source ~/.bash_profile生效)​​

说明:针对不同版本的MySQL,安装流程细节可能不同,大家可以多参考几篇文章,不懂的问题多查资料。

参考内容
1、MySQL 5.7.19 编译安装与配置
2、CentOS 7源码编译安装MySQL 8.0