Linux环境下安装MySQL(源码安装)
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(源码安装)相关推荐
- ubuntu 环境下调试mysql源码_【转】Ubuntu 16.04下 Mysql 5.7.17源码编译与安装
Ubuntu 16.04下 Mysql5.7.17源码编译与安装 系统环境 一. 系统安装条件 1.cmake MySQL使用cmake跨平台工具预编译源码,用于设置mysql的编译参数. sudo ...
- Linux安装MySQL(源码安装)
文章目录 一.下载 二.最小化安装配置 三.MySQL的安装的几种方式 1.MySQL安装方式 2. 三种安装方式的区别 四.MySQL的GLIBC版本安装 1. 上传软件包解压 2. 软件安装 3. ...
- linux环境下编译Qt源码
环境配置:Ubuntu-16.04 1) 下载源码 在官方网站:http://download.qt.io/archive/qt/5.12/5.12.5/single/上下载qt-everywhere ...
- Linux环境下Arm端源码编译OpenCV+ncnn目标检测模型实例运行调试完整实践记录
今天需要在嵌入式设备端运行C的程序,里面有依赖OpenCV的部分,这就需要编译安装好OpenCV才行,这个对于我来说还是比较陌生的,我很少用C,所以这里面也没少折腾,一路上遇上了很多的报错,这里我将完 ...
- 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 ...
- ubuntu 环境下调试mysql源码_Linux中eclipse调试mysql源代码
Linux中eclipse调试mysql源代码 系统:Redhat Linux 6.4 准备的包: eclipse-cpp-luna-SR1-linux-gtk-x86_64 .tar.gz cmak ...
- linux环境下编译llvm源码
环境配置:Ubuntu-16.04 1) 下载依赖 sudo apt-get install cmake sudo apt-get install xz-utils sudo apt-get inst ...
- mysql源码安装(带图详解)
** mysql源码安装 ** mysql源码安装 参考教程: https://www.cnblogs.com/igoodful/p/11365494.html https://blog.csdn.n ...
- rad linux下安装mysql_Linux(CentOS或RadHat)下MySQL源码安装
MySQL 5.6开始,需要使用g++进行编译. cmake :MySQL 5.5开始,使用cmake进行工程管理,cmake需要2.8以上版本. bison :MySQL语法解析器需要使用bis ...
- (二)企业部分之lnmp环境的搭建:mysql源码安装
Web服务器架构 Web服务器架构一般主要由系统环境.Web服务器.数据库和语言组成. 可以有以下组成方式: 系统:linux unix windox mac freebsd aix Web服务器:a ...
最新文章
- Python学习笔记 - PostgreSQL的使用
- dnf强化卷代码_DNF:夏日套时装礼盒开服竟卖八千万金币,500万捡漏到黄金书
- 从zip中读取文件 合并到指定的文件中
- sql注入攻击_让你彻底明白sql注入攻击
- java最常见的runtime_Java常见runtime exception
- 知乎高赞:遇到问题,有哪些有效的分析方法?
- 查看计算机屏幕颜色软件是什么,显示器颜色校正软件,详细教您显示器颜色校正软件...
- linux-ubuntu-obs推流到bilibili及虎牙直播测试
- 将bilibili里面的缓存视频保存到电脑
- 环比计算分母为0怎么办?
- 手动修改主用认证服务器地址,主用认证服务器地址
- 大理大学 计算机研究生分数线,大理大学2018年研究生复试分数线
- 即时与及时有什么区别_即时与及时有什么区别?
- 用excel做机器学习
- 赚钱的方法分享--首先你要有赚钱的思维和方向计划
- CSS 部分样式为什么有的浏览器(如:IE系列)无法呈现出来?
- JPA+H2内嵌数据库
- HDLBits—Lemmings3
- Pycharm Professional(专业版)完美破解,永久激活
- 我们常用的图片格式到底有什么区别?