源码安装mysql

使用源码安装mysql,这里选择的版本是mysql5.7.35 ,系统是Centos7.6

官网下载地址:https://downloads.mysql.com/archives/community/

在这里插入图片描述

  1. 下载源码压缩包

     [root@localhost ~]# cd /opt[root@localhost opt]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.35.tar.gz[root@localhost opt]# tar -xf mysql-boost-5.7.35.tar.gz
    
  2. 下载依赖软件

     [root@localhost ~]# yum install -y  cmake gcc  gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel bzip2 openssl-devel libtirpc-devel.x86_64
    
  3. 编译安装

     [root@localhost opt]# cd mysql-5.7.35/
    

    ## 新建目录,存放编译产生的中间文件。因为不允许在源码目录下进行编译

     [root@localhost mysql-5.7.35]# mkdir builder[root@localhost mysql-5.7.35]# cd builder/
    

    ## 编辑源码

     cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_DEBUG=0 -DMYSQL_MAINTAINER_MODE=0 -DWITH_SYSTEMD=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=../boost
    
  • -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 指定安装目录

  • -DMYSQL_DATADIR=/data/mysql 数据存放目录

  • -DSYSCONFDIR=/etc 配置文件存放目录

  • -DMYSQL_USER=mysql 启动用户

  • -DWITH_MYISAM_STORAGE_ENGINE=1 安装MyISAM引擎

  • -DWITH_INNOBASE_STORAGE_ENGINE=1 安装InnoDB引擎

  • -DWITH_ARCHIVE_STORAGE_ENGINE=1 安装Archive引擎

  • -DWITH_MEMORY_STORAGE_ENGINE=1 安装Memory引擎

  • -DWITH_FEDERATED_STORAGE_ENGINE=1 安装Federated引擎

  • -DWITH_PARTITION_STORAGE_ENGINE=1 安装Partition引擎

  • -DWITH_READLINE=1 MySQL的readline library

  • -DMYSQL_UNIX_ADDR=/tmp/mysql.sock sock文件的路径

  • -DMYSQL_TCP_PORT=3306 MySQL的监听端口

  • -DENABLED_LOCAL_INFILE=1 启用加载本地数据

  • -DENABLE_DOWNLOADS=1 编译时允许自主下载相关文件

  • -DEXTRA_CHARSETS=all 使MySQL支持所有的扩展字符

  • -DDEFAULT_CHARSET=utf8mb4 设置默认字符集为utf8mb4

  • -DDEFAULT_COLLATION=utf8mb4_general_ci 设置默认字符校对

  • -DWITH_DEBUG=0 禁用调试模式

  • -DMYSQL_MAINTAINER_MODE=0 是否启用mysql维护器特定的开发环境

  • -DDOWNLOAD_BOOST=1 允许在线更新boost库

  • -DWITH_BOOST=…/boost 指定boost安装路径

    ## 生成二进制安装程序

      [root@localhost builder]# make
    

    ## 安装

      [root@localhost builder]# make install
    
  1. 创建用户,创建目录,并授权
    ## 创建数据存放目录,编译的时候有指定目录,这里创建指定的目录即可

       [root@localhost builder]# mkdir -p  /data/mysql
    

    ## 创建日志存放目录,pid存放目录

       [root@localhost builder]# mkdir -p /var/log/mysqld /var/run/mysqld[root@localhost builder]# touch /var/run/mysqld/mysql.pid  [root@localhost builder]# touch /var/log/mysqld/mysqld.log
    

    ## 创建用户

       useradd --system -s /sbin/nologin mysql
    

    # 授权目录权限给用户

       [root@localhost ~]# chown -R mysql:mysql /var/log/mysqld		# 日志目录[root@localhost ~]# chown -R mysql:mysql /var/run/mysqld		# 存放目录[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql/	# 安装目录[root@localhost ~]# chown -R mysql:mysql /data/mysql/        # 数据存放目录
    
  2. 修改配置文件

     [root@localhost ~]# vim /etc/my.cnf
    
    [mysqld]
    basedir=/usr/local/mysql
    datadir=/data/mysql
    socket=/tmp/mysql.sock[mysqld_safe]
    log-error=/var/log/mysqld/mysqld.log
    pid-file=/var/run/mysqld/mysql.pid
    
  3. 设置环境变量

     [root@localhost ~]# vim /etc/profile
    
    # mysql 
    export MYSQL_HOME=/usr/local/mysql
    export PATH=$PATH:$MYSQL_HOME/bin
    

    ## 加载环境变量,并测试

     source /etc/profilemysql --version
    
      mysql  Ver 14.14 Distrib 5.7.35, for Linux (x86_64) using  EditLine wrapper
    
  4. 初始化数据库

    ## 初始化数据库,并生成临时密码

     [root@localhost ~]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql
    
    2023-11-30T02:02:22.576131Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2023-11-30T02:02:23.167149Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2023-11-30T02:02:23.259734Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2023-11-30T02:02:23.324006Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 808acff3-8f24-11ee-a4dd-000c29b3fe28.
    2023-11-30T02:02:23.325188Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2023-11-30T02:02:23.765959Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
    2023-11-30T02:02:23.766008Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
    2023-11-30T02:02:23.766902Z 0 [Warning] CA certificate ca.pem is self signed.
    2023-11-30T02:02:24.007794Z 1 [Note] A temporary password is generated for root@localhost: Vm;n/i<44P(P
    
  5. 将mysql加入到systemd进程中

     [root@localhost ~]# cd /opt/mysql-5.7.35/builder[root@localhost builder]# cp scripts/mysqld.service /usr/lib/systemd/system/
    
  6. 启动mysql并修改密码

    ## 启动mysql并加入到开启自启

     [root@localhost ~]# systemctl  start mysqld [root@localhost ~]# systemctl  enable mysqld 
    

    ## 修改mysql密码
    在mysql初始化的时候会生成临时密码

     [root@localhost log]# mysql -uroot -p'Vm;n/i<44P(P'
    
    mysql: [Warning] Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 2
    Server version: 5.7.35Copyright (c) 2000, 2021, Oracle and/or its affiliates.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>
    
     mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';		# your_password 设置为你的密码mysql> use mysql;			mysql> update user set host ='%' where user='root';			# 设置root可远程访问,如不需要可忽略mysql> FLUSH PRIVILEGES;		# 刷新权限表
    

    ## 登录测试

     [root@localhost log]# mysql -uroot -p'your_password'
    
    mysql: [Warning] Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 3
    Server version: 5.7.35 Source distributionCopyright (c) 2000, 2021, Oracle and/or its affiliates.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> 
    

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

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

相关文章

MatchPyramid实现文本匹配

引言 今天利用MatchPyramid实现文本匹配。 原论文解析→点此←。 MatchPyramid 核心思想是计算两段文本间的匹配矩阵&#xff0c;把它当成一个图形利用多层卷积网络提取不同层级的交互模式。 匹配矩阵是通过计算两段输入文本基本单元(比如字或词)之间相似度得到的&#xf…

人工智能的技术研究与安全问题的深入讨论

人工智能&#xff08;AI&#xff09;作为当今世界技术领域的热门话题&#xff0c;吸引了广泛的关注和研究。本文将探讨人工智能技术的最新研究进展&#xff0c;并着重讨论与人工智能安全相关的问题。 引言 人工智能技术的迅速发展为我们的生活带来了翻天覆地的变化。随着科技的…

原神:夏洛蒂是否值得培养?全队瞬抬治疗量不输五星,但缺点也很明显

作为四星冰系治疗角色&#xff0c;夏洛蒂的实战表现可以说相当让人惊喜。不仅有相当有意思的普攻动作以及技能特效&#xff0c;而且她还有治疗和挂冰等功能性。下面就来详细聊聊夏洛蒂是否值得培养。 【治疗量让人惊喜&#xff0c;但也有缺点】 说实话&#xff0c;在使用夏洛蒂…

Postman:专业API测试工具,提升Mac用户体验

如果你是一名开发人员或测试工程师&#xff0c;那么你一定知道Postman。这是一个广泛使用的API测试工具&#xff0c;适用于Windows、Mac和Linux系统。今天&#xff0c;我们要重点介绍Postman的Mac版本&#xff0c;以及为什么它是你进行API测试的理想选择。 一、强大的功能和易…

Python编程新标准:十项好习惯提升编码质量

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 1. 编写易读易维护的代码 编写清晰易读的代码是Python编程的核心。使用描述性变量名、规范的注释和文档字符串&#xff0c;让代码易于理解和维护。 # 示例代码&#xff1a;使用描述性变量名和规范注释 total_s…

csapp-linklab之第3阶段“输出学号”实验报告(强弱符号)

题目 新建一个phase3_patch.o&#xff0c;使其与main.o和phase3.o链接后&#xff0c;运行输出自己的学号&#xff1a; $ gcc -o linkbomb main.o phase3.o phase3_patch.o $ ./linkbomb $学号 提示 利用符号解析中的强弱符号规则。&#xff08;COOKIE字符串未初始化&#xff…

基于微博的信息热度评价与预测分析

摘 要 微博已成为时下非常热门的社交媒体平台&#xff0c;是一个庞大的关于信息分享和话题交流的平台&#xff0c;在人们线上社交活动中发挥着不可替代的作用&#xff0c;由于网络信息鱼龙混杂&#xff0c;所以本文通过了解微博的热度机制进而研究微博热度和预测微博的热门程度…

esp32-s3部署yolox_nano进行目标检测

ESP32-S3部署yolox_nano进行目标检测 一、生成模型部署项目01 环境02 配置TVM包03 模型量化3.1预处理3.2 量化 04 生成项目 二、烧录程序 手上的是ESP32-S3-WROOM-1 N8R8芯片&#xff0c;整个链路跑通了&#xff0c;但是识别速度太慢了&#xff0c;20秒一张图&#xff0c;所以暂…

深入了解Java8新特性-日期时间API之ChronoUnit、ChronoField

阅读建议 嗨&#xff0c;伙计&#xff01;刷到这篇文章咱们就是有缘人&#xff0c;在阅读这篇文章前我有一些建议&#xff1a; 本篇文章大概3000多字&#xff0c;预计阅读时间长需要5分钟。本篇文章的实战性、理论性较强&#xff0c;是一篇质量分数较高的技术干货文章&#x…

Python (十六) 错误和异常

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一波电子书籍资料&#xff0c;包含《Effective Java中文版 第2版》《深入JAVA虚拟机》&#xff0c;《重构改善既有代码设计》&#xff0c;《MySQL高性能-第3版》&…

【李肯C语言小册.必读】为什么有这份专栏?解决什么问题?有哪些价值?是否值得订阅?

文末有惊喜...... 一、李肯的自我介绍 【昵称】架构师李肯 【坐标】深圳 【职业】主业中厂物联网架构师&#xff0c;副业技术自媒体 【个人标签】 专注于嵌入式物联网超10年的系统架构师 国产操作系统RT-Thread技术社区专家、2022年度优秀布道师 CSDN深圳城市开发者社区主…

软件测试简历怎么写?可以参考这份简历

个人简历 基本信息 姓名&#xff1a;名字 性别&#xff1a;男 年龄&#xff1a;25 学历&#xff1a;本科 联系电话&#xff1a…