CentOS 7.4 使用源码包编译安装MySQL 5.7.25

image

一、下载安装包

(一)、先下载MySQL源码,网址为:https://dev.mysql.com/downloads/mysql/ :

1.在Select Operationg System中选择Source Code;
2.在下面的Select OS Version选择Generic Linux(Architecture Independent);
3.然后再下面的部分可以看到Compressed TAR Archive,单击后面的Download;
4.在弹出的界面中选择最下面的No thanks, just start my download就可以开始下载了。
下载完成后将文件复制到服务器的/usr/local/src目录下即可。

也可以使用下面的方法直接在Linux中下载源码包,在/usr/local/src目录下直接用wget进行下载:

cd /usr/local/src
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.25.tar.gz

或者直接下载mysql-boost.5.7.25.tar.gz,这样可以免去单独下载boost

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.25.tar.gz
(二)、下载 boost

下载网址为:http://www.boost.org/users/download/
这个版本的MySQL要求boost的版本是1.59,链接为:
http://www.boost.org/users/history/version_1_59_0.html
下面给出boost 1.59.0的链接,在/usr/local/src目录下直接用wget进行下载

wget --no-check-certificate http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

二、编译安装

(一)、安装必要的软件依赖:
yum install -y cmake bison bison-devel libaio libaio-devel gcc gcc-c++ ncurses ncurses-devel
(二)、解压MySQL源文件:
tar -zxvf mysql-boost-5.7.25.tar.gz
(三)、进入MySQL源文件目录,新建configure做为编译目录,并进入该目录:
cd mysql-5.7.20
mkdir configure
cd configure
(四)、使用cmake进行生成编译环境:
参数 说明
-DCMAKE_INSTALL_PREFIX=dir_name 基础的文件夹,对应mysqld的--basedir参数
-DMYSQL_DATADIR=dir_name 数据存放目录
-DSYSCONFDIR=dir_name 默认配置my.cnf目录
-DWITH_MYISAM_STORAGE_ENGINE 添加MYISAM引擎支持
-DWITH_INNOBASE_STORAGE_ENGINE 添加InnoDB引擎支持
-DWITH_ARCHIVE_STORAGE_ENGINE 添加ARCHIVE引擎支持
-DMYSQL_UNIX_ADDR 指定mysql.sock位置
-DWITH_PARTITION_STORAGE_ENGINE 安装支持数据库分区
-DINSTALL_BINDIR=dir_name bin目录位置
-DINSTALL_DOCDIR=dir_name 文档目录位置
-DINSTALL_DOCREADMEDIR=dir_name Readme文件位置
-DINSTALL_INCLUDEDIR=dir_name Include目录位置
-DINSTALL_LAYOUT=name 布局选项,包括Standalone、RPM、SRV4、DEB
-DWITH-SYSTEMD 可以使用systemd控制mysql服务
-DEXTRA_CHARSETS 使mysql支持所有的扩展字符
-DCMAKE_BUILD_TYPE RelWithDebInfo: 默认值,启用optimizations,同时生成调试信息 ,Debug: 禁用optimizations, 同时生成调试信息
-DENABLE_DTRACE 是否启用dtrace
-DWITH_EMBEDDED_SERVER 是否构建libmysqld嵌入式服务器库
-DWITH_INNODB_MEMCACHED 是否生成memcached共享库
-DWITH_SSL 加载SSL库 •bundled:使用与分发捆绑的库。•system:使用系统库。这是默认设置
-DWITH_ZLIB 某些功能要求使用压缩库支持构建服务器,例如 compress()和uncompress()函数,以及客户端/服务器协议的压缩, 这个使用_zlib表示zlib支持的来源: •bundled:使用与分发捆绑的zlib库。•system:使用系统zlib库。这是默认设置
-DINSTALL_PLUGINDIR 插件目录
-DDEFAULT_CHARSET 设置mysql的默认字符集
-DDEFAULT_COLLATION 设置默认字符集校对规则
-DWITH_EDITLINE 加载libedit/editline库 •bundled:使用与分发捆绑的库。 •system:使用系统库。这是默认设置
-DCOMPILATION_COMMENT 编译信息,后面启动的时候会看到
-DWITH_DEBUG 支持启用调试
-DWITH_BOOST 指向boost库所在目录

编译参数选项参考表格说明

cmake .. -DBUILD_CONFIG=mysql_release \
-DINSTALL_LAYOUT=STANDALONE \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DSYSCONFDIR=/usr/local/mysql5.7/etc/my.cnf \
-DENABLE_DTRACE=OFF \
-DWITH_EMBEDDED_SERVER=OFF \
-DWITH_INNODB_MEMCACHED=ON \
-DWITH_SSL=bundled \
-DWITH_ZLIB=system \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.7/ \
-DINSTALL_PLUGINDIR="/usr/local/mysql5.7/lib/plugin" \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EDITLINE=bundled \
-DFEATURE_SET=community \
-DCOMPILATION_COMMENT="MySQL Server (GPL)" \
-DWITH_DEBUG=OFF \
-DWITH_BOOST=../boost

如果编译出现错误,请先删除CMakeCache.txt后,再重新编译:

rm -rf CMakeCache.txt

如果出现下面的提示就表示成功生成了编译环境:

-- Configuring done
-- Generating done
(五)、使用make进行编译:
make

编译完成后,会出现如下信息:

[100%] Building CXX object sql/CMakeFiles/udf_example.dir/udf_example.cc.o
Linking CXX shared module udf_example.so
[100%] Built target udf_example
[100%] Built target my_safe_process
(六)、安装MySQL:
make install

三、初始化数据库

(一)、添加mysql用户给MySQL专用,禁止登陆
useradd -s /sbin/nologin mysql
(二)、新建数据库文件夹及日志文件夹,并更改用户为mysql:
mkdir /mysql_data
mkdir /var/mysql/log
chown -R mysql:mysql /mysql_data/
chown -R mysql:mysql /var/mysql/log
(三)、修改配置文件
vim /etc/my.cnf

内容替换为:

[mysqld]
port=3306
user=mysql
datadir=/data/mysql/data
log_error=/data/mysql/log/error.log
basedir=/usr/local/mysql5.7
socket=/usr/local/mysql5.7/mysql.sock
pid-file=/usr/local/mysql5.7/mysqld.pid
default-storage-engine=INNODB
max_connections=200
character-set-server=utf8

[mysql]
port=3306
default-character-set=utf8
socket=/usr/local/mysql5.7/mysql.sock

[client]
port=3306
default-character-set=utf8
socket=/usr/local/mysql5.7/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

#[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
(四)、初始化数据库:
/usr/local/mysql5.7/bin/mysqld  --initialize --user=mysql

查看数据文件是否生成:

[root@tony local]# ll /data/mysql/data/
total 110628
-rw-r-----. 1 mysql mysql       56 May 27 15:42 auto.cnf
-rw-r-----. 1 mysql mysql      419 May 27 15:42 ib_buffer_pool
-rw-r-----. 1 mysql mysql 12582912 May 27 15:42 ibdata1
-rw-r-----. 1 mysql mysql 50331648 May 27 15:42 ib_logfile0
-rw-r-----. 1 mysql mysql 50331648 May 27 15:42 ib_logfile1
drwxr-x---. 2 mysql mysql     4096 May 27 15:42 mysql
drwxr-x---. 2 mysql mysql     8192 May 27 15:42 performance_schema
drwxr-x---. 2 mysql mysql     8192 May 27 15:42 sys

查看日志文件是否生成:

[root@tony local]# ll /data/mysql/log/
total 4
-rw-r-----. 1 mysql mysql 802 May 27 15:42 error.log

四、配置启动文件及环境变更

(一)、配置启动文件

1. 从模板文件中复制启动文件:

cp /usr/local/mysql5.7/support-files/mysql.server /etc/init.d/mysqld

2. 修改启动文件:

vim /etc/init.d/mysqld

找到如下二行:

basedir=
datadir=

修改为:

basedir=/usr/local/mysql5.7
datadir=/data/mysql/data

3. 启动mysql:

[root@tony local]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!

可以看到提示,已经成功启动。当然你也可以使用systemctl来启动MySQL,但执行后,不会有任何提示。

[root@tony local]# service mysqld start
(二)、设置MySQL开机自动启动:
[root@tony local]# chkconfig mysqld on
(三)、配置MySQL环境变量:
vim /etc/profile

在最底层添加

PATH=$PATH:/usr/local/mysql5.7/bin
(四)、修改root的初始密码

1. 查看root的初始密码

MySQL从5.7开始不支持安装后使用空密码进行登录,因此在这里需要先查询程序生成的临时密码:

[root@tony tony]# cat /data/mysql/log/error.log | grep 'password'
2019-05-27T07:42:31.049551Z 1 [Note] A temporary password is generated for root@localhost: dfZsY7diI2%A

最后一行冒号后面的部分dfZsY7diI2%A就是初始密码。
2. 登录MySQL并修改初始密码:
使用初始密码登录MySQL:

[root@tony local]# mysql -uroot -p
Enter password:

登录后立即修改root密码,将密码改为'ilovemysql'

mysql> alter user 'root'@'localhost' identified by 'ilovemysql';
Query OK, 0 rows affected (0.00 sec)

其中your_password是你设置的新密码。新密码应是强密码,要求密码包含大小写字母、数字及标点符号,长度应该在6位以上。

(五)、测试

设置好以后,重新启动服务器,查看MySQL是否自动启动:

[root@tony tony]# ps -aux | grep mysql
root      1161  0.0  0.0 115436  1712 ?        S    16:20   0:00 /bin/sh /usr/local/mysql5.7/bin/mysqld_safe --datadir=/data/mysql/data --pid-file=/usr/local/mysql5.7/mysqld.pid
mysql     1511  1.3  9.3 1117208 175728 ?      Sl   16:20   0:01 /usr/local/mysql5.7/bin/mysqld --basedir=/usr/local/mysql5.7 --datadir=/data/mysql/data --plugin-dir=/usr/local/mysql5.7/lib/plugin --user=mysql --log-error=/data/mysql/log/error.log --pid-file=/usr/local/mysql5.7/mysqld.pid --socket=/usr/local/mysql5.7/mysql.sock --port=3306
root      2136  0.0  0.0 112708   976 pts/0    R+   16:22   0:00 grep --color=auto mysql

出现以上信息就表示已经完成在CentOS7.4上手工编译、安装MySQL5.7.25全部过程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,951评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,606评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,601评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,478评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,565评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,587评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,590评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,337评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,785评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,096评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,273评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,935评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,578评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,199评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,440评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,163评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,133评论 2 352

推荐阅读更多精彩内容