Mysql 数据库源码编译安装

MySQL是一个关系型数据库管理系统,关系型数据库是将数据保存在不同的表中,而非将所有数据放在一个大仓库内,这样就加快了速度并提高了灵活性。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。

环境准备:``

安装环境 Centos 7.9

内核版本 Linux 3.10.0-1160.e17.x86_64 x86_64

数据库版本信息 mysql5.7.34

推荐:硬盘至少大于20G,内存至少3G,SWAP3G(内存空间不足在编译安装时会导致编译安装失败)

安装准备:

1.检查卸载默认

rpm –qa|grep mariadb

rpm -e --nodeps 现有版本

列出当前mysql rpm 安装包

rpm –qa|grep mysql

卸载命令如上述

一、下载、编译安装

编译安装流程:

1.下载关联依赖

yum -y install gcc gcc-devel gcc-c++ gcc-c++-devel autoconf* automake* zlib* libxmlncurses-devel ncurses libgcrypt libtool* cmake openssl openssl-devel bisonbison-devel perl-Data-Dumper boost boost-doc boost-devel

yum install ncurses-devel (字符终端处理库)

yum install bison (linux 下c/c++语法分析器)

2.创建用户、用户组及安装目录

groupadd mysql

useradd -p mysql -s /sbin/nologin mysql

mkdir -pv /usr/local/mysql/conf 创建2级目录/mysql/conf

chown -R mysql:mysql /usr/local/mysql

mkdir -pv /data/mysql_data 创建数据库存放数据目录

chown -R mysql:mysql /data/mysql_data

3.下载相应源码包

cd /usr/local/src/tools/ (选定文件下载目录,自选)

进入官网找到下载对应版本信息()



找到对应版本后可直接下载到本机(服务器无网状态推荐)

从物理机上获取mysql源码文件(推荐使用第三方远程工具上传到服务器指定目录)

服务器能连接外网可直接使用命令下载,如下:

wget 对应版本

4.解压文件夹到指定位置

cd /usr/local/src/tools/ (自定义存放文件位置)

tar –zxvf mysql-boost-5.7.34.tar.gz –C /usr/local/mysql/

解压完成后进入解压后的文件目录

cd /usr/local/mysql/

cd mysql-boost-5.7.34

5.编译

cmake

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 指定安装目录

-DMYSQL_DATADIR=/data/mysql_data \ 数据库存放目录

-DSYSCONFDIR=/usr/local/mysql/conf \

-DMYSQL_UNIX_ADDR=/data/mysql_data/mysql.sock

-DSYSTEMD_PID_DIR=/usr/local/mysql

-DMYSQL_USER=mysql

-DWITH_SYSTEMD=1

-DWITH_MYISAM_STORAGE_ENGINE=1

-DWITH_INNOBASE_STORAGE_ENGINE=1 \ innodb 存储引擎

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_MEMORY_STORAGE_ENGINE=1

-DWITH_READLINE=1

-DMYSQL_TCP_PORT=3306

-DENABLED_LOCAL_INFILE=1

-DENABLE_DOWNLOADS=1

-DEXTRA_CHARSETS=all \ 安装所有扩展字符集

-DDEFAULT_CHARSET=utf8mb4 \ 使用 utf8 字符

-DDEFAULT_COLLATION=utf8mb4_general_ci \ 校检字符

-DWITH_DEBUG=0

-DMYSQL_MAINTAINER_MODE=0

-DWITH_SSL:STRING=system

-DWITH_ZLIB:STRING=bundled

-DDOWNLOAD_BOOST=1

-DWITH_BOOST=./boost

如在编译过程中出现错误信息需删除当前目录下cMakCache.txt文件,解决错误信息后重新编译

以下显示表示编译完成

6.编译安装

make -j$(cat /proc/cpuinfo| grep "processor"| wc -l) && make install (会显示的当前编译进度时间较长)

-j参数后数字为CPU核数,可以通过使用cat /proc/ cpuinfo | grep processor | wc –l 进行查看使用该命令可提高编译速度

注: 建议直接使用make && make install 编译安装(多次编译错误运行此条)

编译成功显示如下

7.配置启动文件

cd ./mysql-5.7.30

cp ./scripts/mysqld.service /usr/lib/systemd/system

vi /usr/lib/systemd/system/mysqld.service

无需修改

8.添加环境变量

cat > /etc/profile.d/mysql.sh << EOF

PATH=/usr/local/mysql/bin:$PATH

export PATH

EOF

source /etc/profile 运行该命令使其生效

9.初始化数据库

参数说明,之前版本在/usr/local/mysql/script目录下的初始化程序mysql_install_db本版本已移除,转而使用mysqld替代。

-–initialize 会生成一个随机密码(保存在~/.mysql_secret),而 -–initialize-insecure 不会生成密码。

-–datadir目标目录下不能有数据文件。

初始化命令

rm -fr /data/mysql_data/*

/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data

10.启动服务

systemctl enable mysqld.service 设置mysql开机自启动

systemctl daemon-reload 重新加载配置

systemctl start mysqld.service 启动mysql数据库

systemctl status mysqld.service 检查当前数据库状态

查看当前进程状态

ps –ef|grep mysql

二、检查登录数据库

安装完成后运行命令可检查数据库版本

/usr/local/mysql/bin/mysql --version

查看mysql安装完成后目录

登录数据库、初始无密码

三、卸载源码安装

停用服务

systemctl stop mysqld.service

先执行此,才能禁用服务

systemctl daemon-reload

在开机时禁用一个服务

systemctl disable mysqld.service

删除环境变量文件

rm /etc/profile.d/mysql.sh

删除systemd启动文件mysqld.service

rm /usr/lib/systemd/system/mysqld.service

删除安装目录

rm -rf /usr/local/mysql

删除数据文件(可选)

rm -rf /data/mysql_data/*

Mysql5.7.34 数据库源码编译安装的更多相关文章

  1. 烂泥:mysql5.5数据库cmake源码编译安装

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 以前也写过一篇有关mysql5.0源码编译的文章,该文章为<烂泥:mysql5.0数据库源码编译安装>.但是MySQL自5.5版本以后,就开 ...

  2. centos6.5环境源码编译安装mysql5.6.34

    centos6.5环境源码编译安装mysql5.6.34 源码下载地址http://dev.mysql.com/downloads/mysql/5.6.html#downloads 选择Generic ...

  3. 源码编译安装mysql5.5.33

    源码编译安装mysql5.5.33 一.安装cmake编译工具 跨平台编译器 # yum install -y gcc* # yum install -y cmake 解决依赖关系 # yum ins ...

  4. mysql5.7.10 源码编译安装记录 (centos6.4)【转】

    一.准备工作 1.1 卸载系统自带mysql 查看系统是否自带MySQL, 如果有就卸载了, 卸载方式有两种yum, rpm, 这里通过yum卸载 rpm -qa | grep mysql //查看系 ...

  5. CentOS7.5源码编译安装mysql5.7.29

    #查看系统版本 [root@ctos3 ~]# cat /etc/redhat-release CentOS Linux release (Core) #下载源码包,需要注意的是mysql5.7 编译 ...

  6. CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

    CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境 什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/ ...

  7. zabbix源码编译安装以及添加第一台host监控

    基础准备 硬件需求 数据库需求   软件需求 其他软件需求 安装 安装方式 source code 编译好的二进制包 rpm或者deb 源码编译安装部署zabbix以及附件 前提准备 最小化安装操作系 ...

  8. 源码编译安装 MySQL 5.5.x 实践

    1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...

  9. 总结源码编译安装mysql

    最近在学习源码编译安装LAMP.LNMP时,一直遇到一个难题,就是就是mysql无论怎么源码编译安装,到最后启动服务都提示"Starting MySQL.The server quit wi ...

随机推荐

  1. Octal Fractions java秒 C++

    Octal Fractions 题目抽象:   将八进制小数转换成十进制小树.小数的为数很大. 可以用java  中的BigDeciaml 秒掉.  time:297ms 1 import java. ...

  2. 【译】GO语言:管理多个错误

    原文:https://medium.com/a-journey-with-go/go-multiple-errors-management-a67477628cf1 ​ 关于开发者使用Go遇到的最大挑 ...

  3. JUnit5的Tag、Filter、Order、Lifecycle

    Tag JUnit5可以使用@Tag注解给测试类和测试方法打tag,这些tag能用来在执行时进行过滤,它跟group有点类似. tag应该遵循以下规则: 不能为null或者为空. 不能包含空格. 不能 ...

  4. 案例分享:Qt西门子机床人机界面以及数据看板定制(西门子通讯,mysql数据库,生产信息,参数信息,信息化看板,权限控制,播放器,二维图表,参数调试界面)

    若该文为原创文章,转载请注明原文出处本文章博客地址:https://blog.csdn.net/qq21497936/article/details/118685521 长期持续带来更多项目与技术分享 ...

  5. 在CentOS7环境下部署weblogic集群

    一)环境准备 服务器操作版本系统 CentOS7 weblogic版本包 weblogic1036_generic.jar(weblogic11g) JDK jdk-8u191-linux-x64.t ...

  6. Kotlin Coroutine(协程): 二、初识协程

    @ 目录 前言 一.初识协程 1.runBlocking: 阻塞协程 2.launch: 创建协程 3.Job 4.coroutineScope 5.协程取消 6.协程超时 7.async 并行任务 ...

  7. FirstDay

    昨天心血来潮,想着注册一博客,没想到今天再登时,审阅就通过了,多少有点庆辛.从今天起,我也算是有博客的人了! 为什么选博客园开通?好多IT论坛里都允许有博文,CSDN感觉过于高大上,其他系列论坛大多内 ...

  8. Spring常见异常说明

    文章要点 Spring bean 的声明方式 Spring bean 的注入规则 Spring bean 的依赖查找规则 Spring bean 的名称定义方式和默认名称规则 XXX required ...

  9. 成功解决1406, “Data too long for column ‘txt‘ at row 1“

    这是因为数据库里该字段的数据类型所给的数据空间太小.MySQL将截断超过指定列宽度的任何插入值.为了让这个不报错,可以尝试切换MySQL模式不使用严格模式. SET @@global.sql_mode ...

  10. RPC远程协议之Thrift入门

    在上一篇文章<RPC远程协议之原理分析>中,我介绍了RPC的工作原理及欲实现RPC框架功能应该做哪些事情,因为要做的事情太多,完全由开发人员研发实现,不是很现实,所以市面上出现了诸多RPC ...