良好的学习心态是多么重要。做过一遍就不会忘记,但是时间长了肯定会忘记了。所以每次做了任何的新东西都会写成博客。
我依然要继续做巨人。
为什么要写一边5.7.21的。因为mysql5.7.5以后编译都需要用到boost具体是什么自行百度。我也不是太明白。
正文开始:
一、安装编译开发环境yum -y install gcc gcc-c++ ncurses ncurses-devel cmake
二、添加mysql禁止登录的用户及目录规划
[root@ajpapi ~]# groupadd mysql
[root@ajpapi ~]# useradd -r -g mysql -s /sbin/nologin mysql
MySQL数据库目录划分:
mysql软件目录: /usr/local/mysql
mysql数据目录:/usr/local/mysql/datadir
mysql日志目录:/usr/local/mysql/logdir
[root@ajpapi ~]# mkdir -p /usr/local/mysql
[root@ajpapi ~]# mkdir -p /usr/local/mysql/datadir
[root@ajpapi ~]# mkdir -p /usr/local/mysql/logdir
[root@ajpapi ~]# cd /usr/local/
[root@ajpapi local]# chown -R mysql.mysql mysql/
[root@ajpapi local]# chown -R mysql.mysql mysql/*
三、解压库文件(从MySQL 5.7.5开始Boost库是必需的)
[root@ajpapi ~]# tar -zxvf boost_1_59_0.tar.gz -C /usr/local/mysql/
[root@ajpapi ~]# cd /usr/local/mysql/
[root@ajpapi mysql]# mv boost_1_59_0 boost
四、解压mysql并编译安装
[root@ajpapi ~]# tar -zxvf mysql-5.7.21.tar.gz
[root@ajpapi ~]# cd mysql-5.7.21
[root@ajpapi mysql-5.7.21]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/datadir -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/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@ajpapi mysql-5.7.21]# make
[root@ajpapi mysql-5.7.21]# make install
五、配置my.cnf文件
[client]
port=3306
socket=/usr/local/mysql/datadir/mysql.sock
default-character-set=utf8
[mysqld]
port=3306
user=mysql
socket=/usr/local/mysql/datadir/mysql.sock
pid-file=/usr/local/mysql/datadir/data/ajpapi.pid
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/datadir/data
tmpdir=/usr/local/mysql/tmpdir
character-set-server=utf8
log_error=/usr/local/mysql/logdir/mysql.err
user=mysql
server-id=2
log_bin=/usr/local/mysql/logdir/binlog
general_log_file=/usr/local/mysql/logdir/general_log
general_log=1
slow_query_log=ON
long_query_time=2
slow_query_log_file=/usr/local/mysq/logdir/query_log
log_queries_not_using_indexes=ON
#此处一定要注意。否则真的会出错。
#配置文件里面涉及到的目录和文件需要手动创建一下。确保初始化库不出问题。
#[root@ajpapi mysql]# mkdir /usr/local/mysql/datadir/data
#[root@ajpapi mysql]# mkdir /usr/local/mysql/tmpdir
#[root@ajpapi mysql]# touch /usr/local/mysql/logdir/mysql.err
#[root@ajpapi mysql]# chown -R mysql.mysql /usr/local/mysql/*
六、初始化数据库并安装ssl,可指定文件生成路径,默认为data里面
[root@ajpapi mysql-5.7.21]# cd /usr/local/mysql/bin/
[root@ajpapi bin]# ls
[root@ajpapi bin]# ./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/datadir/data
[root@ajpapi 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@ajpapi bin]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@ajpapi bin]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!
八、登录数据库并修改密码
[root@ajpapi bin]# ./mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.21-log Source distribution
Copyright (c) 2000, 2018, 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> alter user 'root'@'localhost' identified by 'mysql';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
修改成功用mysql密码登陆。
[root@ajpapi bin]# ./mysql -uroot -pmysql
九、修改环境变量
[root@ajpapi ~]# vim /etc/profile
#mysql
PATH=/usr/local/mysql/bin/:/usr/local/mysql/lib/:$PATH
export PATH
[root@ajpapi ~]# source /etc/profile
[root@ajpapi ~]# echo $PATH
/usr/local/mysql/bin/:/usr/local/mysql/lib/:/usr/local/mysql/bin/:/usr/local/mysql/lib/:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@ajpapi ~]# mysql -V
mysql Ver 14.14 Distrib 5.7.21, for Linux (x86_64) using EditLine wrapper
十、查看进程
[root@ajpapi ~]# ps -ef|grep mysql
root 20260 1 0 06:45 pts/1 00:00:00 /bin/sh /usr/local/mysql//bin/mysqld_safe --datadir=/usr/local/mysql/datadir/data --pid-file=/usr/local/mysql/datadir/data/ajpapi.pid
mysql 20571 20260 0 06:45 pts/1 00:00:04 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/datadir/data --plugin-dir=/usr/local/mysql//lib/plugin --user=mysql --log-error=/usr/local/mysql/logdir/mysql.err --pid-file=/usr/local/mysql/datadir/data/ajpapi.pid --socket=/usr/local/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