Linux环境下安装MySQL(源码安装)

  • 1、事先从官网/国内镜像站点中下载源码安装包,上传至服务器:
  • 2、安装开发工具和开发包(从5.5开始使用cmake编译)
  • 3、创建用户和组
  • 4、编译安装MySQL
    • 1)解压安装包
    • 2)使用cmake编译MySQL
    • 3)编译报错
    • 4)编译安装
  • 5、配置环境变量
  • 6、初始化
  • 7、为mysql提供主配置文件
  • 8、为mysql提供sysv服务脚本
  • 9、启动MySQL
  • 10、登录MySQL

1、事先从官网/国内镜像站点中下载源码安装包,上传至服务器:

[root@localhost ~]# wget -c mysql-boost-5.7.37.tar.gz
//也可以下没有带boost的安装包,但由于和boost包有依赖关系,后期仍需要下载boost包,因此建议直接下载带boost的安装包

2、安装开发工具和开发包(从5.5开始使用cmake编译)

yum install make gcc gcc-c++ cmake bison-devel ncurses-devel -y
//上方命令中的make gcc gcc-c++ cmake表示需要以上语言进行编译//由于不同系统可能出现其它的问题,因此大概写出其它可能需要的依赖包
yum install libaio libaio-devel openssl-devel -y
yum install perl-Data-Dumper -y
yum install net-tools -y

3、创建用户和组

[root@localhost ~]# groupadd -r -g 303 mysql    //创建系统组并设置组号为303
[root@localhost ~]# useradd -r -g 303 -u 303 -s /bin/false mysql   //创建系统用户,设置组号为303,用户id为303,“-s /bin/false”表示此用户无需登录[root@localhost ~]# id mysql   //查看结果
uid=303(mysql) gid=303(mysql) groups=303(mysql)

4、编译安装MySQL

1)解压安装包

[root@localhost ~]# tar xf mysql-boost-5.7.37.tar.gz -C /usr/local/src/
//-C表示指定解压路径为/usr/local/src/[root@localhost ~]# cd /usr/local/src/     //查看解压结果
[root@localhost src]# ll
total 4
drwxr-xr-x 35 7161 31415 4096 Nov 30 04:18 mysql-5.7.37

2)使用cmake编译MySQL

[root@localhost ~]# cd /usr/local/src/mysql-5.7.37/     //需要事先切换至此路径下,否则编译失败//【注:下方每一项前面均需要添加-D】
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \      //指定MySQL安装路径
-DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc \ //指定MySQL数据文件路径以及系统配置文件路径
-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 \ //上面两行表示开启各种存储引擎
-DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 \
-DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci \
--DWITH_BOOST=/usr/local/src/mysql-5.7.37/boost/   //指定到时候需要使用的boost包路径(重要)/**
上方很多项的默认值与我们所需一致,不需要我们再配一次
因此真正需要的为以下项:
**/
cmake -DWITH_BOOST=/usr/local/src/mysql-5.7.37/boost \     //指定到时候需要使用的boost包路径(重要)
-DWITH_SSL=system \        //开启加密功能
-DWITH_ZLIB=system \   //开启ZLIB功能
-DSYSCONFDIR=/etc \        //指定系统配置文件路径
-DMYSQL_DATADIR=/usr/local/mysql/data  //指定MySQL数据文件路径/**
再次强调:
必须在下方路径下配置以上命令:
[root@localhost mysql-5.7.37]# pwd
/usr/local/src/mysql-5.7.37
**/

3)编译报错

//末尾显示如下错误信息
Cannot find appropriate system libraries for WITH_SSL=system.
Make sure you have specified a supported SSL version.
Valid options are :
system (use the OS openssl library),
yes (synonym for system),
</path/to/custom/openssl/installation>CMake Error at cmake/ssl.cmake:62 (MESSAGE):Please install the appropriate openssl developer package.Call Stack (most recent call first):cmake/ssl.cmake:305 (FATAL_SSL_NOT_FOUND_ERROR)CMakeLists.txt:568 (MYSQL_CHECK_SSL)-- Configuring incomplete, errors occurred!
See also "/usr/local/src/mysql-5.7.37/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mysql-5.7.37/CMakeFiles/CMakeError.log".
//大概的意思是缺少openssl-devel[root@localhost mysql-5.7.37]# yum install openssl-devel -y     //根据错误信息安装openssl-devel/**注:由于刚刚编译报错,但部分功能已编译成功,如果想清理此前的编译所生成的文件重新编译,则需要使用如下两条命令make clean(清空编译) && rm -rf CMakeCache.txt(删除CMakeCache.txt文件)
**/
[root@localhost mysql-5.7.37]# make clean
make: *** No rule to make target `clean'.  Stop.[root@localhost mysql-5.7.37]# ls
archive_output_directory  CMakeCache.txt   dbug                 INSTALL              libservices  mysys_ssl  regex             storage        VERSION
boost                     CMakeFiles       Docs                 libbinlogevents      LICENSE      packaging  scripts           strings        VERSION.dep
BUILD                     CMakeLists.txt   Doxyfile-perfschema  libbinlogstandalone  man          plugin     source_downloads  support-files  vio
client                    config.h.cmake   extra                libmysql             mysql-test   rapid      sql               testclients    win
cmake                     configure.cmake  include              libmysqld            mysys        README     sql-common        unittest       zlib
[root@localhost mysql-5.7.37]# rm -rf CMakeCache.txt//随后重新编译
[root@localhost mysql-5.7.37]# cmake -DWITH_BOOST=/usr/local/src/mysql-5.7.37/boost \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data
//此时查看是否还有其它报错信息(不同系统环境不一样)
//若无报错信息,表示编译成功

4)编译安装

[root@localhost mysql-5.7.14]# make && make install     //此时慢慢等待(需要很久)

5、配置环境变量

【可以先配,也可以后配,先配可以在初始化时路径写短一点(原本需要完整写出路径mysql/bin/mysqld,现在路径可以直接写mysqld),仅此而已】

[root@localhost ~]# vim /etc/profile.d/mysql.sh
[root@localhost ~]# cat /etc/profile.d/mysql.sh
export PATH=$PATH:/usr/local/mysql/bin[root@localhost ~]# source /etc/profile.d/mysql.sh      //执行shell脚本

6、初始化

[root@localhost ~]# mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql/
//--initialize表示初始化 --user表示用户为mysql --basedir表示指定基本目录 --datadir表示指定数据目录
2022-04-05T07:59:31.063173Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-04-05T07:59:31.241461Z 0 [Warning] InnoDB: New log files created, LSN=45790
2022-04-05T07:59:31.269721Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2022-04-05T07:59:31.343593Z 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: 532220a5-b4b6-11ec-a32f-000c29bf3b9d.
2022-04-05T07:59:31.344304Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2022-04-05T07:59:31.492091Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2022-04-05T07:59:31.492104Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2022-04-05T07:59:31.492484Z 0 [Warning] CA certificate ca.pem is self signed.
2022-04-05T07:59:31.665252Z 1 [Note] A temporary password is generated for root@localhost: AwHAlt#:(3eg
//注:最下方末尾处为MySQL临时密码,需要记住[root@localhost ~]# ll /usr/local/mysql/data/
total 122952
-rw-r----- 1 mysql mysql       56 Apr  5 15:59 auto.cnf
-rw------- 1 mysql mysql     1676 Apr  5 15:59 ca-key.pem
-rw-r--r-- 1 mysql mysql     1112 Apr  5 15:59 ca.pem
-rw-r--r-- 1 mysql mysql     1112 Apr  5 15:59 client-cert.pem
-rw------- 1 mysql mysql     1680 Apr  5 15:59 client-key.pem
-rw-r----- 1 mysql mysql      436 Apr  5 15:59 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 Apr  5 16:00 ibdata1
-rw-r----- 1 mysql mysql 50331648 Apr  5 16:00 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Apr  5 15:59 ib_logfile1
-rw-r----- 1 mysql mysql 12582912 Apr  5 16:00 ibtmp1
-rw-r----- 1 mysql mysql        6 Apr  5 16:00 localhost.localdomain.pid
drwxr-x--- 2 mysql mysql     4096 Apr  5 15:59 mysql
drwxr-x--- 2 mysql mysql     8192 Apr  5 15:59 performance_schema
-rw------- 1 mysql mysql     1680 Apr  5 15:59 private_key.pem
-rw-r--r-- 1 mysql mysql      452 Apr  5 15:59 public_key.pem
-rw-r--r-- 1 mysql mysql     1112 Apr  5 15:59 server-cert.pem
-rw------- 1 mysql mysql     1680 Apr  5 15:59 server-key.pem
drwxr-x--- 2 mysql mysql     8192 Apr  5 15:59 sys

7、为mysql提供主配置文件

这里偷一下懒,直接修改Linux默认安装的MariaDB的my.cnf主配置文件

[root@localhost ~]# vim /etc/my.cnf
/**
修改如下行指定mysql数据文件的存放位置:
datadir = /usr/local/mysql/data
修改如下行指定mysql套接字文件的存放位置:
socket=/tmp/mysql.sock
修改如下行指定mysql日志文件的存放位置:
log-error=/var/log/mysqld.log
修改如下行指定mysql进程id文件的存放位置:
pid-file=/usr/local/mysql/data/mysqld.pid
**/[root@localhost ~]# cat /etc/my.cnf     //下方为修改后结果显示
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

8、为mysql提供sysv服务脚本

[root@localhost ~]# cp /usr/local/src/mysql-5.7.37/support-files/mysql.server /etc/init.d/mysqld
[root@localhost ~]# ll /etc/init.d/mysqld  //查看mysqld权限,发现没有执行(x)权限,需要另外添加
-rw-r--r-- 1 root root 10576 Apr  5 15:55 /etc/init.d/mysqld
[root@localhost ~]# chmod +x /etc/init.d/mysqld   //为mysqld添加执行(x)权限[root@localhost ~]# ll /etc/init.d/mysqld      //查看权限添加结果
-rwxr-xr-x 1 root root 10576 Apr  5 15:55 /etc/init.d/mysqld

9、启动MySQL

[root@localhost ~]# chkconfig --add mysqld      //添加为系统服务
[root@localhost ~]# chkconfig mysqld on        //开机自启动
[root@localhost ~]# systemctl start mysqld     //启动MySQL服务
[root@localhost ~]# systemctl status mysqld        //查看MySQL状态
● mysqld.service - LSB: start and stop MySQLLoaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)Active: active (running) since Tue 2022-04-05 16:00:02 CST; 5s agoDocs: man:systemd-sysv-generator(8)Process: 37664 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=0/SUCCESS)CGroup: /system.slice/mysqld.service├─37672 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/localhost.localdomain.pid└─37826 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-er...Apr 05 16:00:01 localhost.localdomain systemd[1]: Starting LSB: start and stop MySQL...
Apr 05 16:00:02 localhost.localdomain mysqld[37664]: Starting MySQL. SUCCESS!
Apr 05 16:00:02 localhost.localdomain systemd[1]: Started LSB: start and stop MySQL.

10、登录MySQL

[root@localhost ~]# mysql -uroot -p'AwHAlt#:(3eg'
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.37Copyright (c) 2000, 2022, 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>
//登录成功

Linux环境下安装MySQL(源码安装)相关推荐

  1. ubuntu 环境下调试mysql源码_【转】Ubuntu 16.04下 Mysql 5.7.17源码编译与安装

    Ubuntu 16.04下 Mysql5.7.17源码编译与安装 系统环境 一. 系统安装条件 1.cmake MySQL使用cmake跨平台工具预编译源码,用于设置mysql的编译参数. sudo ...

  2. Linux安装MySQL(源码安装)

    文章目录 一.下载 二.最小化安装配置 三.MySQL的安装的几种方式 1.MySQL安装方式 2. 三种安装方式的区别 四.MySQL的GLIBC版本安装 1. 上传软件包解压 2. 软件安装 3. ...

  3. linux环境下编译Qt源码

    环境配置:Ubuntu-16.04 1) 下载源码 在官方网站:http://download.qt.io/archive/qt/5.12/5.12.5/single/上下载qt-everywhere ...

  4. Linux环境下Arm端源码编译OpenCV+ncnn目标检测模型实例运行调试完整实践记录

    今天需要在嵌入式设备端运行C的程序,里面有依赖OpenCV的部分,这就需要编译安装好OpenCV才行,这个对于我来说还是比较陌生的,我很少用C,所以这里面也没少折腾,一路上遇上了很多的报错,这里我将完 ...

  5. linux 安装mysql make_Linux安装mysql——源码安装

    1.假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源文件 (1)先安装cmake(mysql5.5以后是通过cmake来编译的) [root@ rhel5 ...

  6. ubuntu 环境下调试mysql源码_Linux中eclipse调试mysql源代码

    Linux中eclipse调试mysql源代码 系统:Redhat Linux 6.4 准备的包: eclipse-cpp-luna-SR1-linux-gtk-x86_64 .tar.gz cmak ...

  7. linux环境下编译llvm源码

    环境配置:Ubuntu-16.04 1) 下载依赖 sudo apt-get install cmake sudo apt-get install xz-utils sudo apt-get inst ...

  8. mysql源码安装(带图详解)

    ** mysql源码安装 ** mysql源码安装 参考教程: https://www.cnblogs.com/igoodful/p/11365494.html https://blog.csdn.n ...

  9. rad linux下安装mysql_Linux(CentOS或RadHat)下MySQL源码安装

    MySQL 5.6开始,需要使用g++进行编译. cmake  :MySQL 5.5开始,使用cmake进行工程管理,cmake需要2.8以上版本. bison  :MySQL语法解析器需要使用bis ...

  10. (二)企业部分之lnmp环境的搭建:mysql源码安装

    Web服务器架构 Web服务器架构一般主要由系统环境.Web服务器.数据库和语言组成. 可以有以下组成方式: 系统:linux unix windox mac freebsd aix Web服务器:a ...

最新文章

  1. Python学习笔记 - PostgreSQL的使用
  2. dnf强化卷代码_DNF:夏日套时装礼盒开服竟卖八千万金币,500万捡漏到黄金书
  3. 从zip中读取文件 合并到指定的文件中
  4. sql注入攻击_让你彻底明白sql注入攻击
  5. java最常见的runtime_Java常见runtime exception
  6. 知乎高赞:遇到问题,有哪些有效的分析方法?
  7. 查看计算机屏幕颜色软件是什么,显示器颜色校正软件,详细教您显示器颜色校正软件...
  8. linux-ubuntu-obs推流到bilibili及虎牙直播测试
  9. 将bilibili里面的缓存视频保存到电脑
  10. 环比计算分母为0怎么办?
  11. 手动修改主用认证服务器地址,主用认证服务器地址
  12. 大理大学 计算机研究生分数线,大理大学2018年研究生复试分数线
  13. 即时与及时有什么区别_即时与及时有什么区别?
  14. 用excel做机器学习
  15. 赚钱的方法分享--首先你要有赚钱的思维和方向计划
  16. CSS 部分样式为什么有的浏览器(如:IE系列)无法呈现出来?
  17. JPA+H2内嵌数据库
  18. HDLBits—Lemmings3
  19. Pycharm Professional(专业版)完美破解,永久激活
  20. 我们常用的图片格式到底有什么区别?

热门文章

  1. 二手房比新房贵的原因
  2. 计算机d盘hlddz是啥,hlddzsdk.exe是什么进程?
  3. 阿里云轻量级云服务器部署Java项目
  4. 恢复突然消失的Chrome浏览器书签
  5. Ansible常用配置及命令
  6. ib课程北京国际学校哪里有?
  7. 字节入职福利太香了!7月最新Java面经已更新
  8. 开始愉快的学习编程了
  9. 附录三 虚拟机的使用
  10. python获取模块的名称_python获取当前模块的名称