centos7.x编译安装mysql5.7.16

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

对于5.7以后的mysql编译安装,我遇到了不少坑,各种问题。mysql5.7.18编译openssl会出错,环境也神奇地报其他问题,即使我安装成功了,却无法以安装模式登陆mysql修改密码。

最后使用前几个版本就解决问题了。我使用的是5.7.16.


#系统安装条件

1> cmake

MySQL使用cmake跨平台工具预编译源码,用于设置mysql的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等。安装最新版本即可。


2> make3.75

mysql源代码是由C和C++语言编写,在Linux下使用make对源码进行编译和构建,要求必须安装make 3.75或以上版本


3> gcc4.4.6

GCC是linux下的C语言编译工具,mysql源码编译完全由C和C++编写,要求必须安装GCC4.4.6或以上版本


4> Boost1.59.0

mysql源码中用到了C++的Boost库,要求必须安装boost1.59.0或以上版本


5> bison2.1

Linux下C/C++语法分析器


6> ncurses

字符终端处理库


官网的温馨提示:足够的可用内存 如果在编译大型源文件时遇到诸如“ 内部编译器错误 ”等问题 ,可能是内存太少。如果在虚拟机上编译,请尝试增加内存分配。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#其实这个cmake可以不用升级的。。官网说的是make···又多干活了,多折腾了
yum erase cmake
 
#下载cmake
wget -c https: //cmake .org /files/v3 .7 /cmake-3 .7.2. tar .gz
tar  zxvf cmake-3.7.2. tar .gz -C  /usr/local/src
 
#下载boost
wget -c 
mkdir  -p  /usr/local/boost
cp  boost_1_59_0. tar .gz  /usr/local/boost
 
#下载mysql5.7.16
wget -c  
tar  -zxf  mysql-5.7.16. tar .gz -C  /usr/local/src
 
yum  install  -y apr* autoconf automake bison  bzip2  bzip2 * cloog-ppl  cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gtk+-devel gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libxml*?libXaw-devel libXmu-devel libtiff libtiff*  make  mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* wget zlib-devel
1
2
3
4
5
6
7
#编译安装cmkae
 
cd  /usr/local/src/cmake-3 .7.2
. /configure
make
make  install
ln  -sf  /usr/local/bin/cmake  /usr/bin/cmake
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
#安装mysql数据库
#添加mysql组
groupadd mysql 
#创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统
useradd  -g mysql mysql -s  /bin/false 
#创建MySQL数据库存放目录
mkdir  -p  /data/mysql 
#设置MySQL数据库存放目录权限
chown  -R mysql:mysql  /data/mysql 
#创建MySQL安装目录
mkdir  -p  /usr/local/mysql 
cd  /usr/local/src/mysql-5 .7.18
mkdir  bld
cd  bld
cmake .. -DCMAKE_INSTALL_PREFIX= /usr/local/mysql  -DMYSQL_DATADIR= /data/mysql  -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EMBEDDED_SERVER=OFF -DWITH_BOOST= /usr/local/boost
 
make  -j ` grep  processor  /proc/cpuinfo  wc  -l`
make  install
 
#安装成功
 
#如果编译出错, 重新编译前要删除编译失败的文件,重新编译时,需要清除旧的对象文件和缓存信息。
#make clean
#rm -f CMakeCache.txt
#rm -rf /etc/my.cnf #删除系统默认的配置文件(如果默认没有就不用删除)
1
2
3
4
#生成数据库密码
cd  /usr/local/mysql  #进入MySQL安装目录
. /bin/mysqld  --user=mysql --initialize --basedir= /usr/local/mysql  --datadir= /data/mysql  #生成mysql系统数据库 --initialize表示默认生成密码, --initialize-insecure 表示不生成密码, 密码为空。
##2017-07-05T02:52:50.934379Z 1 [Note] A temporary password is generated for root@localhost: x5fujvwK25:y
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#设置开机启动
cp  /usr/local/mysql/support-files/my-default .cnf  /usr/local/mysql/my .cnf
ln  -s  /usr/local/mysql/my .cnf  /etc/my .cnf  #添加到/etc目录的软连接
cp  /usr/local/mysql/support-files/mysql .server  /etc/rc .d /init .d /mysqld  #把Mysql加入系统启动
chmod  755  /etc/init .d /mysqld  #增加执行权限
chkconfig mysqld on  #加入开机启动
vi  /etc/rc .d /init .d /mysqld  #编辑
basedir= /usr/local/mysql  #MySQL程序安装路径
datadir= /data/mysql  #MySQl数据库存放目录
:wq!  #保存退出
service mysqld start  #启动
vi  /etc/profile  #把mysql服务加入系统环境变量:在最后添加下面这一行
export  PATH=$PATH: /usr/local/mysql/bin
:wq!  #保存退出
source  /etc/profile  #使配置立刻生效
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#下面这两行把myslq的库文件链接到系统默认的位置,这样你在编译类似PHP等软件时可以不用指定mysql的库文件地址。
ln  -s  /usr/local/mysql/lib/mysql  /usr/lib/mysql
ln  -s  /usr/local/mysql/include/mysql  /usr/include/mysql
mkdir  /var/lib/mysql  #创建目录
ln  -s  /tmp/mysql .sock  /var/lib/mysql/mysql .sock  #添加软链接
mysql_secure_installation  #修改Mysql密码,输入之前生成的密码回车,根据提示操作。
Press y|Y  for  Yes, any other key  for  No: y  #是否安装密码安全插件?选择y
There are three levels of password validation policy:  #有以下几种密码强度选择
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed  case , and special characters
STRONG Length >= 8, numeric, mixed  case , special characters and dictionary  file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0  #选择0,只要8位数字即可,选1要有大写,小写,特殊字符等
UNINSTALL PLUGIN validate_password ;  #卸载密码强度插件
use mysql;
update mysql.user  set  authentication_string=password( '123456' ) where user= 'root'  #登录mysql控制台修改
ALTER USER  'root' @ 'localhost'  IDENTIFIED WITH mysql_native_password AS  '123456' #修改密码
1
2
3
4
5
#上面登陆mysql控制台和修改密码太过麻烦了,使用下面一条命令即可
#授权root远程访问,密码为root
mysql -uroot -proot
GRANT ALL PRIVILEGES ON *.* TO  'root' @ '%'  IDENTIFIED BY  'root'  WITH GRANT OPTION;
FLUSH PRIVILEGES;



附官网编译安装mysql步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Preconfiguration setup
shell> groupadd mysql
shell>  useradd  -r -g mysql -s  /bin/false  mysql
# Beginning of source-build specific instructions
shell>  tar  zxvf mysql-VERSION. tar .gz
shell>  cd  mysql-VERSION
shell>  mkdir  bld
shell>  cd  bld
shell> cmake ..
shell>  make
shell>  make  install
# End of source-build specific instructions
# Postinstallation setup
shell>  cd  /usr/local/mysql
shell>  chown  -R mysql .
shell>  chgrp  -R mysql .
shell> bin /mysql_install_db  --user=mysql     # Before MySQL 5.7.6
shell> bin /mysqld  --initialize --user=mysql  # MySQL 5.7.6 and up
shell> bin /mysql_ssl_rsa_setup               # MySQL 5.7.6 and up
shell>  chown  -R root .
shell>  chown  -R mysql data
shell> bin /mysqld_safe  --user=mysql &
# Next command is optional
shell>  cp  support-files /mysql .server  /etc/init .d /mysql .server


附网上的参数配置参考,但是我使用网友这个编译安装是不成功的。这里只是为了参考他备注的参数,备注参数感觉还是可以的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#
  cmake \
-DWITH_BOOST= /usr/local/boost_1_59_0  \                  [boost目录]
-DCMAKE_INSTALL_PREFIX= /usr/local/mysql   \              [MySQL安装的根目录]
-DMYSQL_DATADIR= /mydata/mysql/data   \                   [MySQL数据库文件存放目录]
-DSYSCONFDIR= /etc  \                                     [MySQL配置文件所在目录]
-DMYSQL_USER=mysql \                                    [MySQL用户名]      
-DWITH_MYISAM_STORAGE_ENGINE=1 \                        [MySQL的数据库引擎]
-DWITH_INNOBASE_STORAGE_ENGINE=1 \                      [MySQL的数据库引擎]
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \                       [MySQL的数据库引擎]
-DWITH_MEMORY_STORAGE_ENGINE=1 \                        [MySQL的数据库引擎]
-DWITH_READLINE=1 \                                     [MySQL的readline library]
-DMYSQL_UNIX_ADDR= /var/run/mysql/mysql .sock \           [MySQL的通讯目录]
-DMYSQL_TCP_PORT=3306 \                                 [MySQL的监听端口]
-DENABLED_LOCAL_INFILE=1 \                              [启用加载本地数据]
-DENABLE_DOWNLOADS=1 \                                  [编译时允许自主下载相关文件]
-DWITH_PARTITION_STORAGE_ENGINE=1  \
-DEXTRA_CHARSETS=all \                                  [使MySQL支持所有的扩展字符]
-DDEFAULT_CHARSET=utf8 \                                [设置默认字符集为utf8]
-DDEFAULT_COLLATION=utf8_general_ci \                   [设置默认字符校对]
-DWITH_DEBUG=0 \                                        [禁用调试模式]
-DMYSQL_MAINTAINER_MODE=0 \
-DWITH_SSL:STRING=bundled \                             [通讯时支持ssl协议]
-DWITH_ZLIB:STRING=bundled                              [允许使用zlib library]



#

文档参考:https://dev.mysql.com/doc/refman/5.7/en/source-installation.html

支持平台 https://www.mysql.com/support/supportedplatforms/database.html




本文转自 yanconggod 51CTO博客,原文链接:http://blog.51cto.com/yanconggod/1945644
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
关系型数据库 MySQL Linux
centos7.0环境下安装MySql_8.0.12
centos7.0环境下安装MySql_8.0.12
|
2月前
|
缓存 关系型数据库 MySQL
百度搜索:蓝易云【CentOS8服务器安装MySQL报错:no match mysql-community-server】
现在,你已经成功安装了MySQL服务器并解决了"no match mysql-community-server"的报错问题。祝你使用愉快!
42 1
|
1月前
|
Linux 开发工具 C语言
Centos8下编译安装最新版ffmpeg解决方案(含Centos8换源阿里云)
Centos8下编译安装最新版ffmpeg解决方案(含Centos8换源阿里云)
138 3
|
2月前
|
关系型数据库 MySQL Linux
CentOS7环境下安装MySQL5.6
CentOS7环境下安装MySQL5.6
191 0
|
7天前
|
关系型数据库 MySQL Linux
linux CentOS 7.4下 mysql5.7.20 密码改简单的方法
linux CentOS 7.4下 mysql5.7.20 密码改简单的方法
14 0
|
1月前
|
分布式计算 关系型数据库 MySQL
Sqoop【部署 01】CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
【2月更文挑战第8天】Sqoop CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
92 1
|
7天前
|
关系型数据库 MySQL Linux
CentOS 7 下使用yum安装MySQL5.7.20 最简单 图文详解
CentOS 7 下使用yum安装MySQL5.7.20 最简单 图文详解
32 0
|
存储 关系型数据库 MySQL
【MYSQL】—— MySQL 在 Centos 7环境安装
【MYSQL】—— MySQL 在 Centos 7环境安装
|
1月前
|
关系型数据库 MySQL Linux
【VMware安装+centos 7Linux系统+MySQL安装】——在Linux系统中安装MySQL步骤,以及遇见的各种问题(如:vm两个虚拟网卡消失、vm网络适配器有感叹号等等)
【VMware安装+centos 7Linux系统+MySQL安装】——在Linux系统中安装MySQL步骤,以及遇见的各种问题(如:vm两个虚拟网卡消失、vm网络适配器有感叹号等等)
176 0
|
2月前
|
NoSQL 应用服务中间件 Linux
CentOS7搭建MySQL+Redis+MongoDB+FastDF
CentOS7搭建MySQL+Redis+MongoDB+FastDF
138 0

热门文章

最新文章