之前在网上看到的mysql5.7的源码安装, 中间出现了不少的错误,在这里重新纠正一下,亲测可用 其实最重要的是在make的时候。。
1、下载源码
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
在以下地地址下载源码
在Select Operating System: 选项选择 source code
在Select OS Version: 选项选择generic linux
或者直接在linux 系统
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.23.tar.gz
下载下来的文件名称是 mysql-boost-5.7.23.tar.gz
ps 该文件已经含有了boost文件
2、修改主机名,关闭防火墙及selinux
修改主机名:我用的是contos 6 所以直接修改vi /etc/sysconfig/network ,修改如下
NETWORKING=yes
HOSTNAME=testsql
关闭防火墙:
service iptables stop
设置开机不启动防火墙
chkconfig iptables off;
关闭selinux:
修改/etc/selinux/config 文件 把SELINUX 的值改为disabled
[root@testsql ~]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
3、做完以上步骤之后,重启操作系统 reboot;
4、安装cmake
这里用一种比较简单的方法来安装cmake
yum -y install wget gcc-c++ ncurses-devel cmake make perl
5、创建用户、目录、添加环境变量及修改hosts
创建用户:
groupadd mysql
useradd -g mysql mysql -s /sbin/nologin (不允许操作系统以mysql用户登陆)
创建目录:
mkdir -p /application/mysql5.7.23
ln -s /application/mysql /application/mysql5.7.23
mkdir -p /data/mysql
mkdir -p /data/mysql/data
mkdir -p /data/mysql/logs
mkdir -p /data/mysql/temp
chow -R mysql:mysql /data
编辑PATH搜索路径:
修改/etc/profile 往里面加入
PATH=/application/mysql/bin:/application/mysql/lib:$PATH
export PATH
source /etc/profile
修改 /etc/hosts:
往里面加入 主机IP 域名
[root@testsql ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.115.132 testmysql
[root@testsql ~]#
一般如果没有特别要求最好就是域名与主机名一样,之前安装用ambari安装hadoop 的时候就是因为域名与主机名不一样报错,所以 以后一般安装软件的时候,最好就设置 这两个值一样
6、上传安装包,并且解压安装包
上传下载的源码到/temp目录,并且 解压文件
tar -zxvf mysql-boost-5.7.23.tar.gz
进入mysql5.7.23里面
7、配置并且安装
cmake \
-DCMAKE_INSTALL_PREFIX=/application/mysql \
-DMYSQL_UNIX_ADDR=/application/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/home/mysql/data \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1 \
-DWITH_BOOST=boost/boost_1_59_0/
cmake 执行完成之后
执行 make 命令
在这里是重点。有的系统的内在不在1G之上, 但是mysql5.7的要求是在1G以上的内在才行。所有要临时提升一下内存空间。。
如果出现 c++: internal compiler error: Killed (program cc1plus)
运行如下命令。临时提升一下内存空间。再次Make
$dd if=/dev/zero of=/data/swap_add bs=1M count=2048
$mkswap /data/swap_add
$swapon /data/swap_add $swapon -s
执行make 之后
echo $?
确认一下有没有 错
ps linux 每执行一个命令都会返回一个命令值 ,如果该值为0则表示命令执行成功。
make install
执行以上命令,如果没有 错则表示安装成功 ,如果有错需要重新编译的话可以执行
make clean
rm -rf CMakeCache.txt
8、初始化数据库
cd /application/myql
./bin/mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
编译完成之后显示有root用户的默认账号密码,该密码是用来初次登陆数据库
9、修改配置文件
cp /application/mysql/support-files/my-default.cnf /etc/my.cnf
vi /etc/my.cnf
basedir =/application/mysql
datadir =/data/mysql/data
port = 3306
socket = /data/mysql/temp/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket = /data/mysql/temp/mysql.sock
10、配置 使用dervice启动关闭数据库
cp /application/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
启动关闭数据库
11.在我们启动数据库的时候可能会报错
大概意思是sock文件不存在 , 这个时候 service mysql restart 重启能解决问题。但是在重启的时候又出现一个问题,大概意思是pid文件不存在 。如果是按照上面的配置来的话。 就仔细对照一下配置文件是否和上面的一致。
12.在成功进入数据库的时候可能也会报错, 大概意思是说在有动作之前必须重置密码
输入set password = password('123123') query Ok 说明成功。 到这里基本没有什么问题
就是在make的时候可能会消耗很长的时候,大家耐心等待。。 如果有什么问题可以联系QQ 979928978
service mysql start
service mysql stop