Mysql 5.7 Linux编译安装详细步骤

来源:互联网 发布:炉石传说录像软件 编辑:程序博客网 时间:2024/06/05 00:33
原文出处:http://www.iyunv.com/thread-318210-1-1.html
二、下载mysql source_code
1
2
3
4
5
这里说一下,进入myql下载页面后选择source_code:
然后选择 Generic Linux (Architecture Independent), Compressed TAR Archive 
Includes Boost Headers 这个包下载。
也可以用下面的地址:
wget http://dev.mysql.com/get/Downloa ... boost-5.7.17.tar.gz



三、做一些准备工作 
1Linux中修改主机名称
原主机名:localhost.localdomain 修改为:ztlinux
Linux中的hostname在大多数应用中至为重要,例如有些应用强制使用主机名称而不能使用IP地址,如果默认主机名称都为localhost.localdomain 的话那一定会出现问题,而且看起来也是那么的不尽人意。在CentOS6及其以下版本一般通过修改配置文件的办法来修改主机名,此配置文件一般为/etc/sysconfig/network,但在CentOS7中,很多系统管理工具都被替换了。


例如想更改主机名,不能参考以前的方法了,新的配置文件已经更新为/etc/hostname,尽管修改/etc/sysconfig/network配置文件(此文件依然存在,只是是空的)可能起作用,但不得不考虑有些Linux软件是否会使用source此文件或是否使用环境变量$HOSTNAME。因此在此总结了几种CentOS7修改主机名的方法。


0.在安装操作系统的时候设定好主机名
1.直接使用文本编辑器修改/etc/hostname配置文件。
2.使用hostnamectl命令,hostnamectl set-hostname name ,再通过hostname或者hostnamectl status命令查看更改是否生效。
3.使用nmcli general hostname my-server 命令更改。
关于第2、3条更多操作提示可以参考红帽文档“Red Hat Enterprise Linux 7 Networking Guide”的3.3节和3.4节。
更多信息可以查询与hostname相关的man手册。systemd(1), hostname(1), hostname(5), machine-info(5), hostnamectl(1), sethostname(2)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
su - root
#关闭Linux防火墙命令
chkconfig iptables off
#修改SELINUX配置
vim /etc/sysconfig/selinux
#SELINUX=enforcing
#修改为:
#SELINUX=disabled
reboot
#安装cmake mysql5.7采用cmake方式进行配置
yum -y update
yum -y install wget gcc-c++ ncurses-devel cmake make perl
#创建用户、组 为mysql
groupadd mysql 
useradd -r -g mysql mysql
#新建数据库执行文件目录(后面会把编译好的mysql程序安装到这个目录):
mkdir -p /application/mysql5.7.17
ln -s  /application/mysql /application/mysql5.7.17
#新建数据库数据文件目录:
mkdir -p /home/mysql
mkdir -p /home/mysql/data
mkdir -p /home/mysql/logs
mkdir -p /home/mysql/temp
# 编辑PATH搜索路径
vi /etc/profile +
# 在profile文件末尾增加两行
# PATH=/application/mysql/bin:/application/mysql/lib:$PATH
# export PATH
# 使PATH搜索路径立即生效:
source /etc/profile
# 编辑hosts文件,增加一行,加入本机IP和主机名(需要根据实际情况修改IP和主机名)
vi /etc/hosts +
# 192.168.3.158    skytest
# ok进入下载工具目录,开始下载
cd /home/tools
wget http://dev.mysql.com/get/Downloa ... boost-5.7.17.tar.gz



四、配置并安装
   注意:cmake的执行位置,需要进入解压后生成的mysql5.7.17...文件中进行。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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/  

#-DWITH_BOOST=boost/boost_1_59_0/ 这一行是指定boost库的位置,
#如果下载的不是mysql-boost-5.7.17.tar.gz 这个已经包含boost库的包,
#那么需要在配置项中指明下载 boost 库 当然这样比较慢,所以还是建议下载完整包
#直接cmake指定参数 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory> 系统会下载 boost

#cmake结束后开始编译源码,这一步时间会较长,嗯,长的我都快睡了。
make

#看一下有没有错误
echo $?

#输出0,没有错误继续
make install

#清除安装临时文件
make clean

#修改目录拥有者
chown -Rf mysql:mysql /application/mysql5.7.17
chown -Rf mysql:mysql /home/mysql

#创建自带的库和表
#mysql5.7之前版本初始化配置表命令:
#script/mysql_install_db \
#--user=mysql \
#--basedir=/application/mysql \
#--datadir=/home/mysql/data

#mysql5.7已经放弃使用了,而且也没有script目录,可以使用下面这个

cd /application/myql

./bin/mysqld
--initialize 
--user=mysql 
--basedir=/application/mysql 
--datadir=/home/mysql/data

#初始化数据后注意文字提示,里面有root用户的初始密码

#在/etc目录下如果存在一个my.cnf文件,建议将此文件更名为其他的名字,
#否则该文件 会干扰源码安装的MySQL的正确配置,造成无法启动。
#修改/etc/my.cnf操作如下:

mv /etc/my.cnf /etc/my.cnf.bak

#在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,
#找不到则会搜索mysql程序目录下是否有my.cnf

cp /application/mysql/support-files/my-default.cnf  /etc/my.cnf

#mysql5.7配置文件需要修改my.cnf关键配置, 
#mysql5.7之前默认配置文件中是有配置项的,不用手动修改

vi /etc/my.cnf

#修改下面配置
[mysqld]
basedir =/application/mysql
datadir =/home/mysql/data
port = 3306
socket = /home/mysql/temp/mysql.sock

[client]
socket=/tmp/mysql.sock

#client这个字段千万别忘了,如果没有就自己加。不然会不能登录,出现以下错误
#ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/application/mysql5.7/mysql.sock' (2)


#使用service mysql命令启动/停止服务

cp /application/mysql/support-files/mysql.server /etc/init.d/mysql




五、加入开机启动
1
chkconfig mysql on
0 0