Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LAMP之Mysql源码配置安装

LAMP之Mysql源码配置安装

作者头像
用户1173509
发布于 2022-05-09 02:09:45
发布于 2022-05-09 02:09:45
1.1K00
代码可运行
举报
文章被收录于专栏:CaiRuiCaiRui
运行总次数:0
代码可运行

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://dev.mysql.com/doc/refman/5.7/en/source-installation.html  #mysql官网,源码安装Mysql,依靠Cmake

 下载安装Cmake

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost1 cmake-3.9.6]# wget https://cmake.org/files/v3.9/cmake-3.9.6.tar.gz
[root@localhost1 cmake-3.9.6]# tar zxf cmake-3.9.6.tar.gz 
[root@localhost1 cmake-3.9.6]# cd cmake-3.9.6
[root@localhost1 cmake-3.9.6]# ./configure 
[root@localhost1 cmake-3.9.6]# gmake
[root@localhost1 cmake-3.9.6]# gmake install

安装Mysql之前必须要安装的组件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
检查系统中是否有mysql,卸载掉:
yum -y install gcc* libaio* ncurses-devel
groupadd mysql
useradd mysql -s /sbin/nologin -M -g mysql
mkdir -p /opt/mysql5.7.21/{data/,tmp/}
如果mysql没有正确安装,要在初始化时指定路径
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html  Mysql官网编译参数详解
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-DCMAKE_INSTALL_PREFIX=dir_name
安装基础目录。
该值可以在服务器启动时使用该--basedir选项进行设置 。

-DMYSQL_DATADIR=dir_name
MySQL数据目录的位置。
该值可以在服务器启动时使用该--datadir选项进行设置 。

-DMYSQL_UNIX_ADDR=file_name
服务器侦听套接字连接的Unix套接字文件路径。这必须是绝对路径名称。默认是/tmp/mysql.sock。
该值可以在服务器启动时使用该--socket选项进行设置 。

-DDEFAULT_CHARSET=charset_name
服务器字符集。默认情况下,MySQL使用 latin1(cp1252西欧)字符集。
charset_name可以是一种 binary,armscii8, ascii,big5, cp1250,cp1251, cp1256,cp1257, cp850,cp852, cp866,cp932, dec8,eucjpms, euckr,gb2312, gbk,geostd8, greek,hebrew, hp8,keybcs2, koi8r,koi8u, latin1,latin2, latin5,latin7, macce,macroman, sjis,swe7, tis620,ucs2, ujis,utf8, utf8mb4,utf16, utf16le,utf32。允许的字符集在cmake/character_sets.cmake文件中被列为 值CHARSETS_AVAILABLE。
该值可以在服务器启动时使用该--character_set_server选项进行设置 。

-DDEFAULT_COLLATION=collation_name
服务器整理。默认情况下,MySQL使用 latin1_swedish_ci。使用该 SHOW COLLATION语句来确定每个字符集可用的排序规则。
该值可以在服务器启动时使用该--collation_server选项进行设置 。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql-5.7.21 -DMYSQL_DATADIR=/opt/mysql-5.7.21/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/opt/mysql-5.7.21/tmp/mysql.sock -DWITH_BOOST=/opt/boost这个参数是必须的 -DWITH_DEBUG=1#上面没写

/etc/my.cnf配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost init.d]# cat /etc/my.cnf
# Example MySQL config file for small systems.
#
# This is for a system with little memory (<= 64M) where MySQL is only used
# from time to time and it's important that the mysqld daemon
# doesn't use much resources.
#
# MySQL programs look for option files in a set of
# locations which depend on the deployment platform.
# You can copy this option file to one of those
# locations. For information about these locations, see
# http://dev.mysql.com/doc/mysql/en/option-files.html
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.
# The following options will be passed to all MySQL clients
#配置指令传递给与 MYSQL 服务器相关的客户端
[client]#客户端
#password = your_password #密码
port = 3306 #服务的端口,如果需要修改,在确保所有配置文件中都修改
socket = /application/mysql-5.1.72/tmp/mysql.sock #套接字文件的路径
# Here follows entries for some specific programs
# The MySQL server #MYSQL 服务器
[mysqld] #启动命令脚本文件
port = 3306 #端口
socket = /application/mysql-5.1.72/tmp/mysql.sock #套接字文件的路径
skip-locking
key_buffer_size = 16K #索引块的缓冲区大小
max_allowed_packet = 1M #服务能请求包的最大大小为 1M
table_open_cache = 4 #所有线程所打开表的数量
sort_buffer_size = 64K #排序使用的缓冲区大小
read_buffer_size = 256K #读查询操作使用的缓冲区大小
read_rnd_buffer_size = 256K #随机读取缓冲区的大小
net_buffer_length = 2K #
thread_stack = 128K
# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (using the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking
server-id = 1 #本机的序号, master 进程
# Uncomment the following if you want to log updates
#log-bin=mysql-bin
# binary logging format - mixed recommended
#binlog_format=mixed
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /application/mysql-5.1.72/data
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /application/mysql-5.1.72/data
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M #INnodb 缓冲池的大小
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M #INnodb 日志文件大小
#innodb_log_buffer_size = 8M #INnodb 日志缓冲区大小
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50 #INnodb 事务锁定前的超时时间
[mysqldump]
quick
max_allowed_packet = 16M #服务器发送与接收的包的最大大小
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout #服务器关闭连接前等待活动的时间

错误总结:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MySQL5.7.17在cmake的时候报错如下:

点击(此处)折叠或打开

CMake Error at cmake/boost.cmake:81 (MESSAGE):
You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=
This CMake script will look for boost in . If it is not there,
it will download and unpack it (in that directory) for you.
If you are inside a firewall, you may need to use an http proxy:
export http_proxy=http://example.com:80
Call Stack (most recent call first):
cmake/boost.cmake:238 (COULD_NOT_FIND_BOOST)
CMakeLists.txt:455 (INCLUDE)
-- Configuring incomplete, errors occurred!
See also "/root/mysqlsoftware/mysql-5.7.17/CMakeFiles/CMakeOutput.log".
See also "/root/mysqlsoftware/mysql-5.7.17/CMakeFiles/CMakeError.log".
解决办法是:
1./usr/local下创建一个名为boost的文件夹
    mkdir -p /usr/local/boost
2.进入这个新创建的文件夹然后下载boost
    wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
3.解压
    tar -xvzf boost_1_59_0.tar.gz
4.继续cmake,添加上红色部分

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DCOMPILATION_COMMENT='Mysqlma' \
-DWITH_READLINE=ON \
-DWITH_BOOST=/usr/local/boost \
-DSYSCONFDIR=/data/mysqldata/3306 \
-DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-DWITH_BOOST=path_name

Boost库是构建MySQL所必需的。这些 CMake选项可以控制库源位置,以及是否自动下载它:

-DWITH_BOOST=path_name 指定Boost库目录位置。也可以通过设置BOOST_ROOTWITH_BOOST环境变量来指定Boost位置 。

从MySQL 5.7.11开始,它 -DWITH_BOOST=system是允许的,并且表示在标准位置的编译主机上安装了正确版本的Boost。在这种情况下,使用的是Boost的安装版本,而不是MySQL源代码发行版中包含的任何版本。

-DDOWNLOAD_BOOST=bool 指定是否在指定位置不存在的情况下下载Boost源。默认是 OFF-DDOWNLOAD_BOOST_TIMEOUT=seconds 下载Boost库的超时时间(秒)。默认值是600秒。

例如,如果您通常构建MySQL,将对象输出放置在bldMySQL源代码树的子目录中,则可以使用Boost构建,如下所示:

mkdir bld
cd bld
cmake .. -DDOWNLOAD_BOOST=ON -DWITH_BOOST=$HOME/my_boost
这会导致Boost被下载到 my_boost您的主目录下的目录中。如果所需的Boost版本已经存在,则不进行下载。如果所需的Boost版本更改,则会下载较新的版本。

如果Boost已经在本地安装,并且编译器自己找到Boost头文件,则可能不需要指定前面的CMake选项。但是,如果MySQL所需的Boost版本发生更改并且本地安装的版本尚未升级,则可能会出现构建问题。使用CMake 选项应该给你一个成功的构建。

通过上述允许将Boost下载到指定位置的设置,当所需的Boost版本发生更改时,您需要删除该bld文件夹并重新创建该文件夹,然后再次执行cmake步骤。否则,新的Boost版本可能无法下载,编译可能会失败。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://blog.csdn.net/cryhelyxx/article/details/47610247    问题的解决
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bin/mysqld --initialize --user=mysql  初始化mysql。指定用户   --initialize会自动生成密码    
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp /opt/mysql-5.7.21/support-files/mysql.server /etc/init.d/mysqld
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/etc/init.d/mysqld start
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo 'export PATH=/application/mysql/bin:$PATH'>>/etc/profile
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
在不知道mysql root密码的情况下修改密码
[root@cairui mysql]# bin/mysqld_safe --skip-grant-tables & 
在mysql中输入一下命令
update mysql.user set authentication_string=password('root') where user='root' ;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
加入开机启动
[root@cairui ~]# chkconfig mysqld on    
http://www.bubuko.com/infodetail-2167283.html  不需要/etc/my.cnf的解释
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
在龙芯小本上安装Debain8.10
(图片是LEMOTE8089D笔记本,来自互联网) YX原来送了一个LEMOTE笔记本给我。CPU是首款真正的国产,龙芯2F,兼容mips的指令集。 笔记本原来的操作系统是Debian6,后来升级到了7,随后一直是当做玩具放着。最近因为中兴受制裁的事件又想了起来,拿出来尝试看能做点什么。 首先做了常规升级,结果完成后重启动,笔记本直接挂了。 随后只好重新安装,因为笔记本出品时间比较长了,厂家似乎也业务转型,很多支持都无法获得了。所以这个安装过程,也不能说顺利,于是成文记录一下。 准备事项 LEM
俺踏月色而来
2018/06/15
1.2K0
迅为LS2k1000龙芯国产双核开发板烧写系统到 U 盘
龙芯的系统可以存放在 Nand Flash,SD 卡,U 盘,固态或者是网络加载,迅为的龙芯开发板核心板默认没有焊接 Nand Flash,是将文件系统存储在底板的固态硬盘上,这一章节我们将系统烧写到 U 盘,也可以称之为 U 盘启动。
用户9167207
2021/11/24
1.2K0
迅为LS2k1000龙芯国产双核开发板烧写系统到 U 盘
龙芯派lite如何更新pmon
本文主要描述龙芯派lite的固件更新相关的原理。在使用龙芯派lite时,要很清楚的理解龙芯派的执行流程。
bigmagic
2020/05/11
1.4K0
​Linux上的虚拟化技术 Xen 初学者指南
Xen是一个开放源代码的para-virtualizing虚拟机(VMM),或“管理程序”,是为x86架构的机器而设计的。Xen可以在一套物理硬件上安全的执行多个虚拟机;Xen是基于内核的虚拟程序,它和操作平台结合的极为密切,所以它占用的资源最少。
DevinGeng
2019/04/09
2.5K0
Redpower服务器安装debian系统遇到的问题
环境介绍: 服务器:RedPower 系统:Debian8.5 ppc64el架构 处理器:Power8 架构 安装方式:ipmi远程安装 问题:环境如上所述,由于power8架构在安装操作系统时无法通过VGA接口输出显示,只能通过ipmi接口输出,所以我在用ipmi接口来安装操作系统,记得在一次redpower服务器安装debian-ppc64el系统时出现了无法找到引导项的问题 经过和IBM实验室同事的沟通,基本上解决了问题,思路如下: 下载debian-8.5.0-ppc64el-DVD-1.is
染指流年
2023/03/13
5360
双系统重装win7后,修复grub
         大二以前一直都是在用windows编程,即使看到别人使用华丽丽的mac也不屑一顾,认为那只不过虚有其表而已,不可能用来工作。可是有一天看到同学使用的ubuntu以后,其界面,其速度,其方便,日渐让我厌恶windows,特别是连开一个eclipse都要卡住,连鼠标都不能动的时候。我决定,要装上windows+ubuntu的双系统,ubuntu确实很好,不仅是他的系统做得华丽而高效,而且连安装都高windows一筹,因为它可以直接从u盘启动,然后让用户边体验边安装,我们再也不用像安装windo
forrestlin
2018/05/23
6.7K0
Arch Linux 安装指南
如果想要学习Linux,Arch Linux是个很好的选择。Arch Linux提供了非常详细并且更新及时的Wiki(帮助文档),使用系统的过程中遇到的问题基本上都空余从上面找到。
小陈运维
2021/10/13
2.7K0
ubuntu如何修复引导
****前言:**** 今晚快要下班的时候,cp文件夹到U盘里面,由于文件过大并且里面的文件都是代码小文件,想想接近700M大有多少小文件,然而电脑就发烧式的发烫,真不敢想象呢,前所未有的发热,于是我就想关机来让电脑来歇歇,万万没想到的就是,电脑关机出现异常了,这时候我已经意识到电脑maybe出了问题。然后我就立马开机,果然不出我所料,电脑系统进不了了。来公司前我安装了linux+win双系统,电脑开机默认进入的是win系统,看到提示,感觉是win除了问题,真是奇怪:上次使用win系统都没有问题的,让你w
AlicFeng
2018/06/08
9.7K0
win7 boot设置_重装系统boot missing
安装linux,vista/win7双系统后,怎么引导是个问题 理论上,可以从windows的boot loader引导linux,也可以linux的grub引导windows 但windows更霸道,经常霸占MBR,所以最好是linux不放MBR,然后从windows的boot loader引导linux 把linux装在自己的分区,不要在MBR 然后把linux分区的头512字节弄成一个文件,拷到boot loader所在的分区根下 dd if=/dev/sda1 of=/tmp/linux.bin bs=512 count=1 cp /tmp/linux.bin /media/你的window c分区 到windows上执行: bcdedit /create /d “GRUB” /application BOOTSECTOR 下面的{LinuxID}改为此命令输出的id bcdedit /set {LinuxID} device boot bcdedit /set {LinuxID} PATH \linux.bin bcdedit /displayorder {LinuxID} /addlast bcdedit /timeout 10
全栈程序员站长
2022/11/08
2K0
Archlinux 入门初步
  从 archlinux 官方或者是镜像源下载到 iso 文件,并使用以下命令制作启动U盘。
zhonger
2022/10/28
2K0
Linux磁盘管理和文件系统[通俗易懂]
  磁盘和文件系统的管理是运维人员的重要工作内容之一,本文对磁盘和文件系统的一些概念做了详细解释,管理命令给出了常用示例,方便自己在工作时随时查阅,也欢迎各位一同学习。
全栈程序员站长
2022/09/01
4.9K0
win10黑群晖安装教程_黑群晖7.0安装教程
为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客http://nas.hepcloud.top:7000
全栈程序员站长
2022/11/15
6.1K0
win10黑群晖安装教程_黑群晖7.0安装教程
win10中安装centos7双系统
开机按F2,进入bios,在boot项中,boot mode为UEFI,则为uefi启动方式。
全栈程序员站长
2022/09/15
2.7K0
win10中安装centos7双系统
win 7和Ubuntu 12.04 双系统下的磁盘分区问题
s1mba
2018/01/03
2.4K0
win 7和Ubuntu 12.04 双系统下的磁盘分区问题
windows10 双系统安装后,grub2 引导修复(亲自实验);grub2 命令行 手动加载内核;fedora 29 系统grub2引导修复;
之前在本机有fedora 29的系统,但是由于错误安装,把windows10 启动安装到 linux 所在的硬盘中,导致原来的 efi中的grub启动被破坏,不能进入到linux中;我首先通过磁盘精灵,把efi中启动文件拷贝到现有的windows安装盘中,重新启动后成功从新的efi分区进入windows; 然后开始进行恢复fedora系统;这时候,有两种办法,一种是重新安装 linux; 另外一种方法就是重新修复grub引导;因为对linux比较了解,我选择了后者;首先参考了几篇已经实践的博客;
西湖醋鱼
2020/12/30
4.6K0
Linux应用开发【第十四章】存储设备应用开发
​ 如上图的100ask6ull开发板,⑦为USB口,U盘从这里插入;⑱为mico sd卡槽,micro sd卡可以直接从这里插入。
韦东山
2021/12/15
5.3K0
Linux应用开发【第十四章】存储设备应用开发
嵌入式入门级学习——基于国产平台T3开发板的测试教程(3)
本文主要为嵌入式入门开发者的接口、网口等板卡基础快速测试,当初级学习的开发者拿到板卡,如何在最快时间内测试板卡正常?,继续测试教程(2)的按键、时钟设置、DDR读写、Micro SD接口读写、eMMC读写等测试部分,接下来是测试板卡的SATA接口、USB接口读写、USB HOST模式测试、USB DEVICE模式、串口测试等是否正常。
创龙科技Tronlong
2022/03/31
5.4K0
嵌入式入门级学习——基于国产平台T3开发板的测试教程(3)
手把手教你如何重装win10系统(win10怎么自己重装系统)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128612.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/28
2.6K0
手把手教你如何重装win10系统(win10怎么自己重装系统)
GRUB多操作系统启动程序介绍与设置使用
描述:GRUB英文全称GRand Unified Bootloader俗称引导程序是硬盘中的软件,它可以启动用户在计算机中的多个操作系统所以也叫多重启动管理器。 目前主流版本是 GRUB2,在windows中也有类似的引导程序ntloader虽然它也可以引导Linux操作系统但是比较麻烦;
全栈工程师修炼指南
2022/09/29
8.6K0
GRUB多操作系统启动程序介绍与设置使用
新手安装Ubuntu 16.04 操作系统
这一步相对简单,网络上面有很多的链接下载。这里贴一个ubuntu的官方网站链接,可以下载到ubuntu 16.04的iso文件
全栈程序员站长
2022/08/22
1.7K0
新手安装Ubuntu 16.04 操作系统
推荐阅读
相关推荐
在龙芯小本上安装Debain8.10
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验