【Linux合集之mysql】源码安装mysql

news/2024/11/20 11:09:24/文章来源:https://www.cnblogs.com/queryH/p/18556459

1、本地留有mysql-5.6.46.tar.gz的包,将包上传至虚拟机
[root@db01 ~]# rz mysql-5.6.46.tar.gz
2、安装后面所需要的依赖

cmake过程需要的依赖

[root@db01 ~]# yum install -y cmake openssl openssl-devel ncurses-devel gcc gcc-c++

初始化过程依赖

[root@db01 ~]# yum install -y autoconf libaio libaio-devel

可以一步执行上面两个依赖的操作(合并执行)

yum install -y cmake openssl openssl-devel ncurses-devel autoconf libaio libaio-devel gcc gcc-c++

3、解压
[root@db01 ~]# tar xf mysql-5.6.46.tar.gz
4、创建安装的目录
[root@db01 ~]# mkdir /service
5.生成

[root@db01 ~]# cd mysql-5.6.46/
[root@db01 mysql-5.6.46]# cmake . -DCMAKE_INSTALL_PREFIX=/service/mysql-5.6.46 \
-DMYSQL_DATADIR=/service/mysql-5.6.46/data \
-DMYSQL_UNIX_ADDR=/service/mysql-5.6.46/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=system \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0
#生成过程注释
#指定程序存放位置
cmake . -DCMAKE_INSTALL_PREFIX=/service/mysql-5.6.46 \
#指定数据存放目录
> -DMYSQL_DATADIR=/service/mysql-5.6.46/data \
#指定socket文件存放位置
> -DMYSQL_UNIX_ADDR=/service/mysql-5.6.46/tmp/mysql.sock \
#指定使用utf8字符集
> -DDEFAULT_CHARSET=utf8 \
#校验规则
> -DDEFAULT_COLLATION=utf8_general_ci \
#使用额外字符集
> -DWITH_EXTRA_CHARSETS=all \
#支持的存储引擎
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_FEDERATED_STORAGE_ENGINE=1 \
> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#不支持的存储引擎
> -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
#启动zlib库
> -DWITH_ZLIB=bundled \
#启动用SSL库
> -DWITH_SSL=system \
#支持本地数据导入
> -DENABLED_LOCAL_INFILE=1 \
#支持嵌入式服务
> -DWITH_EMBEDDED_SERVER=1 \
#支持下载
> -DENABLE_DOWNLOADS=1 \
#禁用DEBUG
> -DWITH_DEBUG=0

6.编译安装
[root@db01 mysql-5.6.46]# make && make install
7.做软连接
[root@db01 ~]# ln -s /service/mysql-5.6.46 /service/mysql
8.创建数据的用户
[root@db01 ~]# useradd mysql -s /sbin/nologin -M
9.拷贝配置文件和启动文件

[root@db01 ~]# cd /service/mysql/support-files/
[root@db01 support-files]# cp my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
[root@db01 support-files]# cp mysql.server /etc/init.d/mysqld

10.配置system管理mysql

[root@db01 ~]# vim /usr/lib/systemd/system/mysql.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/service/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000[root@db01 ~]# systemctl daemon-reload

11.初始化数据库

[root@db01 ~]# cd /service/mysql/scripts/
[root@db01 scripts]# ll
total 36
-rwxr-xr-x 1 root root 34977 Jun  3 17:05 mysql_install_db
[root@db01 scripts]# ./mysql_install_db --user=mysql --basedir=/service/mysql/ --datadir=/service/mysql/data

12.创建socket文件
第一次使用system启动服务失败,可以查看/var/log/messages日志看报错,也可以使用/etc/init.d/mysqld启动,日志直接打印出来,能看到报错,发现缺少socket文件目录,我们要创建上
[root@db01 ~]# mkdir /service/mysql/tmp
13.授权mysql目录

[root@db01 ~]# chown -R mysql.mysql /service/mysql
[root@db01 ~]# chown -R mysql.mysql /service/mysql-5.6.46/

14.启动服务

[root@db01 ~]# systemctl start mysql
[root@db01 ~]# netstat -lntp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      51435/mysqld    
[root@db01 ~]# ps -ef | grep [m]ysql
mysql     51435      1  5 18:40 ?        00:00:00 /service/mysql/bin/mysqld --defaults-file=/etc/my.cnf

15.配置环境变量

[root@db01 ~]# vim /etc/profile.d/mysql.sh 
export PATH=/service/mysql/bin:$PATH[root@db01 ~]# source /etc/profile

16、环境变量生效之后就可以直接启动数据库了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/837251.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

震撼推荐!性能测试全攻略:零基础也能玩转性能测试!

1、提起性能测试,你的第一反应是什么? 当提到性能测试,你的第一反应是什么?是不屑一顾,认为它很简单,没发展前途、没技术含量?还是觉得它太难了,高不可攀,每当遇到系统的疑难杂症时,抓耳挠腮,无从下手? 很多IT从业人员,认为"性能测试仅仅只是测试的工作,会用…

不同类型的OA办公系统分别有什么作用?

不知道大家有没有发现,在不知不觉间,OA(Office Automation)办公系统的应用已经发展得越来越广泛,可以说是涉及到工作的方方面面。你们想过这是为什么吗? 因为OA办公系统不仅提高了工作效率,还优化了企业的管理流程。随着科技的不断进步,OA办公系统的类型也日益丰富,满…

React+AntD Table支持下拉分页和自定义输入分页条数

实例支持在下拉分页框内输入分页条数来实现自定义分页代码usePageSizeSelect.jsimport {useEffect, useState} from "react"; import Bus from "../../utils/eventBus";export function usePageSizeSelect() {const onInputKeyDown = (e) => {const tem…

LeetCode 2455[可被三整除的偶数平均值]

LeetCode 2455[可被三整除的偶数平均值]题目 链接 LeetCode 2455[可被三整除的偶数平均值] 详情实例提示题解 思路 遍历容器,for 循环遍历,vector 的 at 方法取元素值 判断能否被3整除,不能则继续遍历 能被3整除则判断能否被2整除,即判断奇偶性,不能被2整除,即为奇数则继…

Microsoft.Extensions.AI 初探

本文介绍了Microsoft.Extensions.AI的基本使用。.NET Conf上的介绍 在今年的.NET Conf上Steve Sanderson带来了题为“AI Building Blocks - A new, unified AI layer”的演讲。该演讲的主要内容如下: “大多数.NET应用程序可以通过AI功能变得更加强大和高效,例如语义搜索、自…

如何确定合适的绩效考核周期和频率?

绩效考核周期的确定需要根据企业的实际情况、不同岗位的特殊性、考核指标的性质及考核标准的不同进行综合考虑。 1、一般来说,管理层级越高的岗位,其考核周期也应该设置得相对较长 2、绩效考核周期过短会增加企业的管理成本;过长又会降低绩效考核数据的准确性比如,销售人员…

什么是OA办公系统?为什么OA办公系统对于企业的作用越来越重要?

如何提升工作效率、优化资源配置、加强团队协作能力,成为了每个企业管理者亟需解决的关键问题。随着企业规模的扩展和业务流程的复杂化,传统的手工操作和纸质文件已经无法满足高效办公的需求。 OA(Office Automation)办公系统应运而生,成为了现代企业提高工作效率、优化管…

关于湖北移动机顶盒CM311-1S长虹版本刷机的总结

最近家里的机顶盒不好使了,就捣鼓了一下自己刷机, 机顶盒是湖北移动的CM311-1s,长虹代工的,晶晨的S905L3处理器,2+8G的配置,用着也还行 这个版本的刷机需要拆机顶盒,找内部的短接点,就是背面这个“4R12”的电阻, 刷机需要用到USB双A头线,接靠近后排插座的那个口,插…

从零搭建UVM验证平台 简介

搭建UVM流程:定义interface。Interface是连接DUT和验证平台的桥梁,根据DUT的输入输出参数定义interface,在top_tb里连接interface和DUT。加入transaction。transaction是一个数据包,transaction由sequence产生,通过sequencer传递给driver。加入driver。Driver负责将接收到…

智慧城市时空基础设施建设与应用实践

智慧城市作为现代城市发展的新趋势,其核心在于利用先进的信息技术,实现城市运行的高效、智能和绿色。时空基础设施作为智慧城市建设的基石,为城市的智慧化提供了基础支撑。本文将探讨智慧城市时空基础设施的建设与应用实践。1. 时空基础设施的重要性时空基础设施是智慧城市不…

echarts 使用移表盘实现类似类目轴效果,不使用数值刻度

思路:使用多个移表盘叠加 效果图:代码: setGaugeChart() {this.gaugeChart && this.gaugeChart?.dispose && this.gaugeChart?.dispose()this.gaugeChart = echarts.init(this.$refs.gaugeChartRef)const grades = [AAA, AA, A, BBB, BB, B, CCC, CC, C, …

Chrome 浏览器 131 版本新特性

Chrome 浏览器 131 版本新特性 一、Chrome 浏览器 131 版本新特性 1. 在 iOS 上使用 Google Lens 搜索 自 Chrome 126 版本以来,用户可以通过 Google Lens 搜索屏幕上看到的任何图片或文字。 要使用此功能,请访问网站,并点击聚焦时出现在地址栏的 Google Lens 搜索按钮,或者…