LAMP之Mysql源码配置安装

https://dev.mysql.com/doc/refman/5.7/en/source-installation.html #mysql官网,源码安装Mysql,依靠Cmake
下载安装Cmake
[root@localhost1 cmake-3.9.]# wget https://cmake.org/files/v3.9/cmake-3.9.6.tar.gz
[root@localhost1 cmake-3.9.]# tar zxf cmake-3.9..tar.gz
[root@localhost1 cmake-3.9.]# cd cmake-3.9.
[root@localhost1 cmake-3.9.]# ./configure
[root@localhost1 cmake-3.9.]# gmake
[root@localhost1 cmake-3.9.]# gmake install
[root@localhost1 cmake-3.9.6]# which gmake
/usr/bin/gmake
安装Mysql之前必须要安装的组件
检查系统中是否有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没有正确安装,要在初始化时指定路径
https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html Mysql官网编译参数详解
-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选项进行设置 。
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配置:
[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 = #服务的端口,如果需要修改,在确保所有配置文件中都修改
socket = /application/mysql-5.1./tmp/mysql.sock #套接字文件的路径
# Here follows entries for some specific programs
# The MySQL server #MYSQL 服务器
[mysqld] #启动命令脚本文件
port = #端口
socket = /application/mysql-5.1./tmp/mysql.sock #套接字文件的路径
skip-locking
key_buffer_size = 16K #索引块的缓冲区大小
max_allowed_packet = 1M #服务能请求包的最大大小为 1M
table_open_cache = #所有线程所打开表的数量
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 = #本机的序号, 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./data
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /application/mysql-5.1./data
# You can set .._buffer_pool_size up to - %
# 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 % of buffer pool size
#innodb_log_file_size = 5M #INnodb 日志文件大小
#innodb_log_buffer_size = 8M #INnodb 日志缓冲区大小
#innodb_flush_log_at_trx_commit =
#innodb_lock_wait_timeout = #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 #服务器关闭连接前等待活动的时间
错误总结:
MySQL5..17在cmake的时候报错如下: 点击(此处)折叠或打开 CMake Error at cmake/boost.cmake: (MESSAGE):
You can download it with -DDOWNLOAD_BOOST= -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: (COULD_NOT_FIND_BOOST)
CMakeLists.txt: (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".
解决办法是:
.在/usr/local下创建一个名为boost的文件夹
mkdir -p /usr/local/boost
.进入这个新创建的文件夹然后下载boost
wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
.解压
tar -xvzf boost_1_59_0.tar.gz
.继续cmake,添加上红色部分 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE= \
-DWITH_FEDERATED_STORAGE_ENGINE= \
-DWITH_BLACKHOLE_STORAGE_ENGINE= \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE= \
-DWITH_PARTITION_STORAGE_ENGINE= \
-DWITH_PERFSCHEMA_STORAGE_ENGINE= \
-DCOMPILATION_COMMENT='Mysqlma' \
-DWITH_READLINE=ON \
-DWITH_BOOST=/usr/local/boost \
-DSYSCONFDIR=/data/mysqldata/ \
-DMYSQL_UNIX_ADDR=/data/mysqldata//mysql.sock
-DWITH_BOOST=path_name Boost库是构建MySQL所必需的。这些 CMake选项可以控制库源位置,以及是否自动下载它: -DWITH_BOOST=path_name 指定Boost库目录位置。也可以通过设置BOOST_ROOT或 WITH_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版本可能无法下载,编译可能会失败。
http://blog.csdn.net/cryhelyxx/article/details/47610247 问题的解决
bin/mysqld --initialize --user=mysql 初始化mysql。指定用户 --initialize会自动生成密码
cp /opt/mysql-5.7./support-files/mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start
echo 'export PATH=/application/mysql/bin:$PATH'>>/etc/profile
在不知道mysql root密码的情况下修改密码
[root@cairui mysql]# bin/mysqld_safe --skip-grant-tables &
在mysql中输入一下命令
update mysql.user set authentication_string=password('root') where user='root' ;
加入开机启动
[root@cairui ~]# chkconfig mysqld on
http://www.bubuko.com/infodetail-2167283.html 不需要/etc/my.cnf的解释
You must SET PASSWORD before executing this statement的解决方法
http://www.jb51.net/article/39187.htm
LAMP之Mysql源码配置安装的更多相关文章
- Dubbo入门到精通学习笔记(十九):MySQL源码编译安装、MySQL主从复制的配置
文章目录 MySQL 源码编译安装(CentOS-6.6+MySQL-5.6) 一.服务器配置: 二.源码安装 MySQL5.6.26: MySQL主从复制的配置 环境 依赖课程 MySQL 主从复制 ...
- mysql源码版安装
mysql源码版安装 创建配置文件 创建 my.ini,注意修改,如下的 设置mysql的安装目录和设置mysql数据库的数据的存放目录,设置自己本机的上的对应路径 [mysql] # 设置mysql ...
- ubuntu下mysql源码编译安装
建议:cpu4核以上,内存4G以上 1. 安装环境:Ubuntu Server 14.10MySQL-5.6.23.tar.gz 2. 安装必备的工具sudo apt-get install make ...
- mysql源码编译安装
首先去官网http://dev.mysql.com/downloads/mysql/ 下载mysql源码.我下的是5.7.10 源码选择的是 Generic Linux (Architecture I ...
- Mysql源码编译安装&主从复制
一)camke源码编译安装mysql 1)创建软件安装目录software [root@master software]# ls cmake-2.8.8.tar.gz mysql-5.5.32.tar ...
- MySQL 源码编译安装
脚本须知: 1. 该脚本目前只测试过mysql版本为5.6.x的源码,其他源码可以对本脚本稍作修改即可 2. 本脚本也可以使用wget mysql源码的方式进行,但考虑到后期提供源码的地址不可用,所以 ...
- mysql源码包安装
一.准备编译环境 # yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake # wget ht ...
- MySQL 源码编译安装脚本
cat mysql_init.shmysql_init.sh mysql_init.sh.20190401 mysql_init.sh.back20171030 ...
- Mysql 源码编译安装 ( 5.5 、5.6 共存 )
简介: 如何在一台服务器同时运行两 ( 多 ) 个 MySQL 服务. 1.MySQL 5.6 shell > useradd -r -s /sbin/nologin mysql shell & ...
随机推荐
- Cortex-M0(+)内核的处理器架构简介
Cortex-M0(+)内核的处理器架构简介 2015年03月02日 16:51:12 阅读数:3158 系统架构 Cortex-M0处理器具有32位系统总线接口,以及32位地址线,即有4GB的地址空 ...
- tree指令
tree 中文解释:tree功能说明:以树状图列出目录的内容.语 法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录.. ...
- How far away ?(LCA)dfs和倍增模版
How far away ? Tarjan http://www.cnblogs.com/caiyishuai/p/8572859.html Time Limit: 2000/1000 MS (Jav ...
- Regexp:template
ylbtech-Regexp: 1.返回顶部 1. 2. 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 7.返回顶部 8.返回顶部 9.返回 ...
- 将CDM中所有以Relatonship_开头的关系全部重命名,避免生成数据库因为重复关系名报错
Option Explicit ValidationMode = True InteractiveMode = im_Batch Dim mdl '当前model '获取当前活 ...
- CreateRemoteThread 远程注入
在release中可以成功,在debug中被注入的程序停止工作 #pragma once#include "stdafx.h"#include <windows.h># ...
- 01-19asp.net网站--关于“应用程序中的服务器错误(需添加"Jquery"ScriptRescourseMapping)”
一般打开网页进行加载时(有缓存),会弹出以下对话框. 但是如果网页加载后出现以下错误,就是应用程序的问题了.如果出现这种问题,就需要在安装Csharp的根目录下,找到一个名为.dll结尾的Jquery ...
- UML在软件开发中各个阶段的作用和意义
经典的软件工程思想将软件开发分成5个阶段:需求分析,系统分析与设计,系统实现,测试及维护五个阶段. 之所以如此,是因为软件开发中饣含了物和人的因素,存在着很大的不确定性,这使得软件工程不可能像理想的, ...
- 异常 android.content.res.Resources$NotFoundException: String resource ID #0x61
09-09 16:08:41.554: E/Weaver(13140):09-09 16:08:41.554: E/Weaver(13140): android.content.res.Resourc ...
- 百度地图SDK v2.1.2使用方法
1.开发工具 Android开发工具有很多,开发者可根据自己的喜好进行选择.在此,我们推荐开发者使用Eclipse作为自己的开发工具,本套开发指南也是针对Eclipse开发环境下进行编写的. 2.工程 ...