千家信息网

MySQL如何源码安装

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,小编给大家分享一下MySQL如何源码安装,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!源码安装的两种方法MySQL的源码安
千家信息网最后更新 2025年01月23日MySQL如何源码安装

小编给大家分享一下MySQL如何源码安装,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

源码安装的两种方法

MySQL的源码安装有两种方法可供参考。

Use a standard MySQL source distribution,这种方法其实就是下载源码压缩包,然后通过cmake来构建部署。

比如5.6版本的源码包,可以参考链接下载:

https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.35.tar.gz 安装说明和步骤可以参考:

http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html 对于MySQL 5.7把对应版本改一下就可以,差别不是很大。

或者到官网直接点击下载也可以。

安装的详细步骤我们等下细说,目前网站上看到的绝大多数源码安装都是这种方式。

Use a MySQL development tree,这种方式是通过开发源码树的方式来编译部署。主要的方式就是基于git.

这种方式相对来说,感觉就是在参与开发一个项目一般,有着很完善的版本管理。

首先使用git来开启安装,会从github上来抓取。

# git clone https://github.com/mysql/mysql-server.git这个过程会持续一些时间,完成之后目录变成了多大。大概1.5G,而源码压缩包大概就是几十M,差别非常大。

# du -sh .

1.5G . 我们使用git来查看版本的情况,发现MySQL 8.0的代码也可以抓取了,如果想尝尝鲜,掌握新版本新特性,这种方式还是比较高效的。

# git branch -r

origin/5.5

origin/5.6

origin/5.7

origin/8.0

origin/HEAD -> origin/5.7

origin/cluster-7.2

origin/cluster-7.3

origin/cluster-7.4

origin/cluster-7.5比如我们选择5.7版本,

# git checkout 5.7

Checking out files: 100% (21703/21703), done.

Switched to branch '5.7'接下来的事情就和源码包安装差不多了。我们放在一起说。

先来了解下安装的几个命令

其实源码安装的步骤还是很常规,时间都在编译的过程中,你可以看到屏幕里满屏的日志输出,感觉好像你在做什么超级高深的事情一样。其实编写这个软件的人才是真心牛叉,不服你想想你安装的时候,除了cmake, make ,make install之外,操作的步骤也要简单的多。

其实很多开源软件安装都是make,make install这样的步骤,这个过程后面到底发生了什么。

make的命令使用细则如下:

make [options] [targets] [VAR=VALUE]...

[options]是命令行选项,可以用 make --help 命令查看全部,[VAR=VALUE]是在命令行上指定环境变量,而target则是Makefile里面的规则。Makefile里面的内容有时候看不大明白。

可以参考这个,这个列表引用自:http://mp.weixin.qq.com/s/rp50qrNipmdBBOyNTkGJoQ

AR 函数库打包程序,可创建静态库.a文档。默认是"ar"。AS 汇编程序。默认是"as"。CC C编译程序。默认是"cc"。CXX C++编译程序。默认是"g++"。CPP C/C++预处理器。默认是"$(CC) -E"。FC Fortran编译器。默认是"f77"。PC Pascal语言编译器。默认是"pc"。YACC Yacc文法分析器。默认是"yacc"。ARFLAGS 函数库打包程序的命令行参数。默认值是"rv"。ASFLAGS 汇编程序的命令行参数。CFLAGS C编译程序的命令行参数。CXXFLAGS C++编译程序的命令行参数。CPPFLAGS C/C++预处理器的命令行参数。FFLAGS Fortran编译器的命令行参数。PFLAGS Pascal编译器的命令行参数。YFLAGS Yacc文法分析器的命令行参数。LDFLAGS 链接器的命令行参数。prefix /usr/localexec_prefix $(prefix)bindir $(exec_prefix)/binsbindir $(exec_prefix)/sbinlibexecdir $(exec_prefix)/libexecdatadir $(prefix)/sharesysconfdir $(prefix)/etcsharedstatedir $(prefix)/comlocalstatedir $(prefix)/varlibdir $(exec_prefix)/libinfodir $(prefix)/infoincludedir $(prefix)/includeoldincludedir $(prefix)/includemandir $(prefix)/mansrcdir 需要编译的源文件所在的目录,无默认值

这样可能会清楚一些了,至少我们知道大概要做的事情了。

安装前的准备

安装前,做以下几件事情。创建mysql用户组,创建mysql用户。

groupadd mysql

useradd -r -g mysql -s /bin/false mysql接下来的工作就需要花点功夫了,那就是环境依赖的安装包。

对于MySQL 5.7来说,boost是需要的,否则无法编译,这样下载部署。当然boost在MySQL 5.6不是必需。

wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

tar -zxvf boost_1_59_0.tar.gz -C /usr/local/还有一个字符终端处理库ncurses是一定要检查的,可以这样下载。

http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.8.tar.gz下载后使用./configure,make,make install 即可安装。

安装后,可以使用如下的方式来检测是否安装成功。

# ll /usr/lib/libncurse*

-rw-r--r-- 1 root root 669034 Mar 23 13:31 /usr/lib/libncurses.a

-rw-r--r-- 1 root root 166630 Mar 23 13:31 /usr/lib/libncurses++.a

-rw-r--r-- 1 root root 3501680 Mar 23 13:31 /usr/lib/libncurses_g.a如果饶有兴致,还可以写一小段代码来检测。

#include

#include

#include

int main()

{

initscr();

move( 5, 15 );

printw( "%s", "Hello world" );

refresh();

sleep(2);

endwin();

exit(EXIT_SUCCESS);

}这么运行即可。

g++ a.c -lncurses && ./a.out如果看到Hello world,证明安装是没有问题的。

最重要的一点,那就是保证cmake是可用的,没有的话,yum install cmake安装一下。

同时gcc,bison的版本也要注意一下,不能太低。

源码安装

目前压缩包解压后可以看到的cmake支持版本很多。

# ll /root/soft/mysql_source_code/mysql-5.6.35/cmake/os

total 60

-rw-r--r-- 1 7161 31415 1402 Nov 28 21:36 AIX.cmake

-rw-r--r-- 1 7161 31415 773 Nov 28 21:36 Cygwin.cmake

-rw-r--r-- 1 7161 31415 951 Nov 28 21:36 Darwin.cmake

-rw-r--r-- 1 7161 31415 1139 Nov 28 21:36 FreeBSD.cmake

-rw-r--r-- 1 7161 31415 1714 Nov 28 21:36 HP-UX.cmake

-rw-r--r-- 1 7161 31415 1658 Nov 28 21:36 Linux.cmake

-rw-r--r-- 1 7161 31415 838 Nov 28 21:36 OS400.cmake

-rw-r--r-- 1 7161 31415 4242 Nov 28 21:36 SunOS.cmake

-rw-r--r-- 1 7161 31415 14652 Nov 28 21:36 WindowsCache.cmake

-rw-r--r-- 1 7161 31415 8011 Nov 28 21:36 Windows.cmake我们开始安装,值得一提的是,我是打算同服务器上安装多个版本,所以就在/usr下指定了不同的安装目录,数据目录。

cmake .

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql_5.6

-DMYSQL_DATADIR=/home/mysql_5.6

-DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8_general_ci

-DEXTRA_CHARSETS=all

-DENABLED_LOCAL_INFILE=1一般准备充分,这个过程就是分分钟的事情,如果ncures没安装,就可能抛出如下的错误退出。

-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)

CMake Error at cmake/readline.cmake:85 (MESSAGE):

Curses library not found. Please install appropriate package,接下来是make操作,我们可以做点改进,那就是加快编译的速度,使用-j参数,根据CPU核数指定编译时的线程数,因为默认是1个线程编译,如果不知道该启用几个,可以换算一下。

make -j `grep processor /proc/cpuinfo | wc -l`

满屏幕的编译日志,看起来很有成就感。

make阶段的事情做完之后,就是make install,这个过程会正式安装软件到指定的目录,也是我们的终极目标。

值得一提的是,如果因为空间问题异常退出,还是最好删除CMakeCache.txt文件,重新cmake一遍,然后make,make install

创建数据库

这个阶段的工作就很常规了,我们简化一下,两个命令初始化,启动数据库。

启用的参数模板类似于:

[mysqld]

# server configuration

datadir=/home/mysql_5.7

basedir=/usr/local/mysql_5.7

port=3308

socket=/home/mysql_5.7/mysql.sock

server_id=3308

gtid_mode=ON

enforce_gtid_consistency=ON

master_info_repository=TABLE

relay_log_info_repository=TABLE

binlog_checksum=NONE

log_slave_updates=ON

log_bin=binlog

binlog_format=ROW

innodb_log_file_size=1000M

max_prepared_stmt_count=150000

max_connections = 3000

innodb_buffer_pool_size = 24G5.7的操作如下:

初始化数据字典:

/usr/local/mysql_5.7/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql_5.7 --datadir=/home/mysql_5.7启动数据库:

/usr/local/mysql_5.7/bin/mysqld_safe --defaults-file=/home/mysql_5.7/s.cnf &

5.6的操作如下:

初始化数据字典

/usr/local/mysql_5.6/s/mysql_install_db --user=mysql --basedir=/usr/local/mysql_5.6 --datadir=/home/mysql_5.6启动数据库

/usr/local/mysql_5.6/bin/mysqld_safe --defaults-file=/home/mysql_5.6/s.cnf &后面的事情你懂的,我们可以连接到源码版的数据库了。

# /usr/local/mysql_5.7/bin/mysql --socket=/home/mysql_5.7/mysql.sock --port=3308

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 7

Server version: 5.7.17-log Source distribution

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

enjoy

以上是"MySQL如何源码安装"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

编译 命令 源码 参数 就是 数据 版本 程序 事情 方式 数据库 步骤 目录 过程 参考 编译程序 编译器 接下来 内容 方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发企业公司好吗 无法识别服务器信息 linux桌面软件开发工具 网络工程师与软件开发师 应用层用什么连接服务器 央视科教频道网络安全教育 暗黑2重制版怎么解决分服务器 我与网络安全同行的口号 智慧门禁软件开发费用 电脑无法解析dns服务器地址 四川新一代网络技术服务设计 广州南沙区新华互联网科技学校 漫谈网络安全提高网络安全意识 亚马逊数据库安全性 服务器机柜滑轨安装 怎么通过映射连接服务器 网络技术部门经理讲话 嘉定区管理软件开发定制价格 千万不要学网络技术 腾达路由器远端服务器没反应 服务器更换系统硬盘步骤 adas软件开发环境 star数据库全称 衡水学习软件开发 清华同方服务器如何设置u盘启动 vb数据库连接字符串 河北原宠网络技术有限公司 网络安全要实现的目标 徐州微信小程序软件开发 如何访问别的数据库
0