«

MySQL-5.7.21源码编译安装

指尖二进制 • 1 年前 • 648 次点击 • MYSQL


为什么要写一边5.7.21的。因为mysql5.7.5以后编译都需要用到boost具体是什么自行百度。我也不是太明白。
正文开始:
一:安装编译开发环境

yum -y install gcc gcc-c++ ncurses ncurses-devel cmake

二:添加mysql禁止登录的用户及目录规划

[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql -s /sbin/nologin mysql

MySQL数据库目录划分:
mysql软件目录: /opt/mysql
mysql数据目录:/opt/mysql/datadir
mysql日志目录:/opt/mysql/logdir

[root@localhost ~]# mkdir -p /opt/mysql
[root@localhost ~]# mkdir -p /opt/mysql/datadir
[root@localhost ~]# mkdir -p /opt/mysql/logdir
[root@localhost ~]# cd /opt/
[root@localhost local]# chown -R mysql.mysql mysql/
[root@localhost local]# chown -R mysql.mysql mysql/*

三:解压库文件(从MySQL 5.7.5开始Boost库是必需的)

[root@localhost ~]# tar -zxvf boost_1_59_0.tar.gz -C /opt/mysql/
[root@localhost ~]# cd /opt/mysql/
[root@localhost mysql]# mv boost_1_59_0 boost

四:解压mysql并编译安装

[root@localhost ~]# tar -zxvf mysql-5.7.21.tar.gz
[root@localhost ~]# cd mysql-5.7.21
[root@localhost mysql-5.7.21]# cmake . -DCMAKE_INSTALL_PREFIX=/opt/mysql -DMYSQL_DATADIR=/opt/mysql/datadir -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/opt/mysql/boost -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DENABLE_DTRACE=0 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EMBEDDED_SERVER=1

过程有点慢
[root@localhost mysql-5.7.21]# make
[root@localhost mysql-5.7.21]# make install

五:配置my.cnf文件

[client]
port=3306
socket=/opt/mysql/datadir/mysql.sock
default-character-set=utf8

[mysqld]
port=3306
user=mysql
socket=/opt/mysql/datadir/mysql.sock
pid-file=/opt/mysql/datadir/data/localhost.pid
basedir=/opt/mysql/
datadir=/opt/mysql/datadir/data
tmpdir=/opt/mysql/tmpdir
character-set-server=utf8
log_error=/opt/mysql/logdir/mysql.err
user=mysql

server-id=2
log_bin=/opt/mysql/logdir/binlog

general_log_file=/opt/mysql/logdir/general_log
general_log=1

slow_query_log=ON
long_query_time=2
slow_query_log_file=/opt/mysq/logdir/query_log
log_queries_not_using_indexes=ON

此处一定要注意。否则真的会出错。
配置文件里面涉及到的目录和文件需要手动创建一下。确保初始化库不出问题。

[root@localhost mysql]# mkdir /opt/mysql/datadir/data
[root@localhost mysql]# mkdir /opt/mysql/tmpdir
[root@localhost mysql]# touch /opt/mysql/logdir/mysql.err
[root@localhost mysql]# chown -R mysql.mysql /opt/mysql/*

六:初始化数据库并安装ssl,可指定文件生成路径,默认为data里面

[root@localhost mysql-5.7.21]# cd /opt/mysql/bin/
[root@localhost bin]# ls
[root@localhost bin]# ./mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/datadir/data
[root@localhost bin]# ./mysql_ssl_rsa_setup 
Generating a 2048 bit RSA private key
........+++
.....................+++
writing new private key to 'ca-key.pem'
-----
Generating a 2048 bit RSA private key
................................................................................+++
...............................................................................+++
writing new private key to 'server-key.pem'
-----
Generating a 2048 bit RSA private key
.......+++
................+++
writing new private key to 'client-key.pem'
-----

七:启动数据库

[root@localhost bin]# cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost bin]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!

八:登录数据库并修改密码

[root@localhost bin]# ./mysql
mysql> alter user 'root'@'localhost' identified by 'mysql';
mysql> flush privileges; 
mysql> quit

修改成功用mysql密码登陆。
[root@localhost bin]# ./mysql -uroot -pmysql

九:修改环境变量

[root@localhost ~]# vim /etc/profile
#mysql
PATH=/opt/mysql/bin/:/opt/mysql/lib/:$PATH
export PATH

[root@localhost ~]# source /etc/profile
[root@localhost ~]# echo $PATH
/opt/mysql/bin/:/opt/mysql/lib/:/opt/mysql/bin/:/opt/mysql/lib/:/opt/sbin:/opt/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# mysql -V
mysql  Ver 14.14 Distrib 5.7.21, for Linux (x86_64) using  EditLine wrapper

十:查看进程

[root@localhost ~]# ps -ef|grep mysql
root      20260      1  0 06:45 pts/1    00:00:00 /bin/sh /opt/mysql//bin/mysqld_safe --datadir=/opt/mysql/datadir/data --pid-file=/opt/mysql/datadir/data/localhost.pid
mysql     20571  20260  0 06:45 pts/1    00:00:04 /opt/mysql/bin/mysqld --basedir=/opt/mysql/ --datadir=/opt/mysql/datadir/data --plugin-dir=/opt/mysql//lib/plugin --user=mysql --log-error=/opt/mysql/logdir/mysql.err --pid-file=/opt/mysql/datadir/data/localhost.pid --socket=/opt/mysql/datadir/mysql.sock --port=3306
root      20799   3209  0 08:01 pts/2    00:00:00 grep mysql

至此Mysql安装完毕,源码安装过于繁琐。建议使用官方编译好的二进制文件安装
官网地址:
wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
wget http://www.mysql.com/Downloads/MySQL-5.7/mysql-5.7.21.tar.gz

还没收到回复