阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux源码编译安装MySQL5.7.9

488次阅读
没有评论

共计 5662 个字符,预计需要花费 15 分钟才能阅读完成。

一、环境准备:

我尝试过以下环境都是能成功的:
1、CentOS6.7 minimal 镜像最小化缺省安装;
2、RedHat6.5 DVD 基本服务器安装;
3、其他 Linux 版本未验证。
注意系统安装好之后需要配置好网卡,关闭防火墙及 SELINUX:
# 关闭 Linux 防火墙命令
# chkconfig iptables off
# 修改 SELINUX 配置
# vim /etc/sysconfig/selinux
SELINUX=enforcing
修改为:
SELINUX=disabled
修改完成后,保存并退出,然后重启系统。

二、升级系统:

先使用 yum -y update 指令升级系统到最新版本。
如果服务器在内网,此步骤可略过。

三、做一些准备工作(以下 Linux 命令均在 su 到 root 用户操作):

1、新增 MySQL 用户组
# groupadd mysql
2、新增 mysql 用户
# useradd -r -g mysql mysql
3、新建数据库执行文件目录(后面会把编译好的 mysql 程序安装到这个目录)
# mkdir -p /usr/local/mysql
4、新建数据库数据文件目录
# mkdir -p /home/mysql
# mkdir -p /home/mysql/data
# mkdir -p /home/mysql/logs
# mkdir -p /home/mysql/temp
注意:上面的第 3 及第 4 是为了以后将 MySQL 的数据文件与执行程序文件分离,如果你打算设置到不同的路径,注意修改对应的执行命令和数据库初始化脚本!
5、编辑 PATH 搜索路径
# vi /etc/profile +
# 在 profile 文件末尾增加两行
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export PATH
使 PATH 搜索路径立即生效:
# source /etc/profile
6、编辑 hosts 文件,增加一行,加入本机 IP 和主机名(需要根据实际情况修改 IP 和主机名)
# vi /etc/hosts +
192.168.1.2      linuxidc
7、安装编译源码所需的工具和库(如果不能在线安装,需要提前配置好本地源,本地源配置方法度娘吧,以后有时间)
# yum -y install wget gcc-c++ ncurses-devel cmake make perl
注意:如果是 RedHat5.4,其 ISO 源中没有 cmake,可以手动编译安装 cmake,或者升级到 RedHat5.9 之后再从源中 yum 安装 cmake。
8、通过 FTP 或 SFTP 将 mysql-5.7.9.tar.gz 源码包上传到 /usr/local/src 路径下。
如果服务器能上网,也可以通过 wget 下载 mysql-5.7.9.tar.gz。下载地址如下:
# cd /usr/local/src
# wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz

四、开始编译安装 mysql-5.7.9:

1、进入源码压缩包下载目录
# cd /usr/local/src
2、解压缩源码包
# tar -zxvf mysql-5.7.9.tar.gz
3、进入解压缩源码目录
# cd mysql-5.7.9
4、使用 cmake 源码安装 mysql(如果你打算安装到不同的路径,注意修改下面语句中 /usr/local/mysql 这个路径!)
#cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/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
上面的这些复制完,回车,然后就开始 cmake 的过程,一般时间不会很长。
5、cmake 结束后开始编译源码,这一步时间会较长,请耐心等待。
# make
6、安装编译好的程序
# make install
注意:如果需要重装 mysql,在 /usr/local/src/mysql-5.7.9 在执行下 make install 就可以了,不需要再 cmake 和 make
7、清除安装临时文件
# make clean
8、修改目录拥有者
# chown -Rf mysql:mysql /usr/local/mysql
# chown -Rf mysql:mysql /home/mysql
9、进入 mysql 执行程序的安装路径
# cd /usr/local/mysql
10、执行初始化配置脚本,创建系统自带的数据库和表(注意路径 /home/mysql/data 需要换成你自定定义的数据库存放路径)
# scripts/mysql_install_db –user=mysql –datadir=/home/mysql/data
# 初始化脚本在 /usr/local/mysql/ 下生成了配置文件 my.cnf,需要更改该配置文件的所有者:
# chown -Rf mysql:mysql /usr/local/mysql
注意:
(1)Tips:在启动 MySQL 服务时,会按照一定次序搜索 my.cnf,先在 /etc 目录下找,找不到则会搜索 mysql 程序目录下是否有 my.cnf”;
(2)需要注意 CentOS 6.4 版操作系统的最小安装完成后,即使没有安装 mysql,在 /etc 目录下也会存在一个 my.cnf 文件,建议将此文件更名为其他的名字,否则该文件 会干扰源码安装的 MySQL 的正确配置,造成无法启动。修改 /etc/my.cnf 操作如下:
# mv /etc/my.cnf /etc/my.cnf.bak
# 当然也可以删除掉 /etc/my.cnf 这个文件:
# rm /etc/my.cnf
(3)如果你需要用于生产环境,不要急着做下面的 mysql 启动操作。建议把上一步骤中 mysql 初始化生成的 /usr/local/mysql /mysql.cnf 删除,然后把你优化好的 mysql 配置文件 my.cnf 放到 /etc 下。(这是我做 mysql 主从复制和 mysql 优化的经验!)
11、复制服务启动脚本
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
12、启动 MySQL 服务
# service mysql start
13、设置开机自动启动服务
# chkconfig mysql on
14、登录并修改 MySQL 用户 root 的密码
# mysql -u root
mysql> use mysql;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@”%” IDENTIFIED BY “123456”;
mysql> update user set Password = password(‘123456′) where User=’root’;
mysql> flush privileges;
mysql> exit;
15、检测下上一步 MySQL 用户 root 密码是否生效:
[root@linuxidc etc]# mysql -u root
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)——没有密码无法登录,说明密码修改成功了。
[root@linuxidc ~]# mysql -u root -p
Enter password: ——这里提示时输入你设置的 mysql root 帐号密码
# 登录成功有如下提示:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 422
Server version: 5.7.9-log Source distribution
Copyright (c) 2000, 2013, 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>
16、(可选)运行安全设置脚本,强烈建议生产服务器使用:
[root@linuxidc ~]# /usr/local/mysql/bin/mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
    SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we’ll need the current
password for the root user.  If you’ve just installed MySQL, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on…

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

You already have a root password set, so you can safely answer ‘n’.

Change the root password? [Y/n] n ————— 这里输入 n
… skipping.

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y ————— 这里输入 Y
… Success!

Normally, root should only be allowed to connect from ‘localhost’.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n ————— 这里输入 n
… skipping.

By default, MySQL comes with a database named ‘test’ that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y ————— 这里输入 Y
– Dropping test database…
ERROR 1008 (HY000) at line 1: Can’t drop database ‘test’; database doesn’t exist
… Failed!  Not critical, keep moving…
– Removing privileges on test database…
… Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y ————— 这里输入 Y
… Success!

All done!  If you’ve completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

Cleaning up…
17、重启服务器,检测 mysql 是否能开机自动启动
[root@linuxidc ~]# reboot

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-04/130075.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计5662字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7805195
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...