centos7.x编译安装mysql5.7.16

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

对于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
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
11 3
|
2天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
8 2
|
4天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
29 2
|
20天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置服务等,并与使用 RPM 包安装进行了对比,帮助读者根据需求选择合适的方法。编译源码安装虽然复杂,但提供了更高的定制性和灵活性。
172 2
|
21天前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
92 6
|
19天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
54 3
Mysql(4)—数据库索引
|
21天前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
57 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
7天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
32 4
|
13天前
|
存储 关系型数据库 MySQL
如何在MySQL中创建数据库?
【10月更文挑战第16天】如何在MySQL中创建数据库?
|
17天前
|
SQL Oracle 关系型数据库
安装最新 MySQL 8.0 数据库(教学用)
安装最新 MySQL 8.0 数据库(教学用)
86 4

热门文章

最新文章