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

CentOS 7.4 使用源码包编译安装MySQL 5.7.25_第1张图片
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全部过程

你可能感兴趣的:(CentOS 7.4 使用源码包编译安装MySQL 5.7.25)