MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境
  1. https://dev.mysql.com/doc/refman/5.7/en/source-installation.html  #mysql官网,源码安装Mysql,依靠Cmake

下载安装Cmake

  1. [root@localhost1 cmake-3.9.]# wget https://cmake.org/files/v3.9/cmake-3.9.6.tar.gz
  2. [root@localhost1 cmake-3.9.]# tar zxf cmake-3.9..tar.gz
  3. [root@localhost1 cmake-3.9.]# cd cmake-3.9.
  4. [root@localhost1 cmake-3.9.]# ./configure
  5. [root@localhost1 cmake-3.9.]# gmake
  6. [root@localhost1 cmake-3.9.]# gmake install

[root@localhost1 cmake-3.9.6]# which gmake
/usr/bin/gmake

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

  1. 检查系统中是否有mysql,卸载掉:
    yum -y install gcc* libaio* ncurses-devel
  2. groupadd mysql
  3. useradd mysql -s /sbin/nologin -M -g mysql
  4. mkdir -p /opt/mysql5.7.21/{data/,tmp/}
    如果mysql没有正确安装,要在初始化时指定路径
  1. https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html  Mysql官网编译参数详解
  1. -DCMAKE_INSTALL_PREFIX=dir_name
  2. 安装基础目录。
  3. 该值可以在服务器启动时使用该--basedir选项进行设置
  4.  
  5. -DMYSQL_DATADIR=dir_name
  6. MySQL数据目录的位置。
  7. 该值可以在服务器启动时使用该--datadir选项进行设置
  8.  
  9. -DMYSQL_UNIX_ADDR=file_name
  10. 服务器侦听套接字连接的Unix套接字文件路径。这必须是绝对路径名称。默认是/tmp/mysql.sock
  11. 该值可以在服务器启动时使用该--socket选项进行设置
  12.  
  13. -DDEFAULT_CHARSET=charset_name
  14. 服务器字符集。默认情况下,MySQL使用 latin1cp1252西欧)字符集。
  15. charset_name可以是一种 binaryarmscii8 asciibig5 cp1250cp1251 cp1256cp1257 cp850cp852 cp866cp932 dec8eucjpms euckrgb2312 gbkgeostd8 greekhebrew hp8keybcs2 koi8rkoi8u latin1latin2 latin5latin7 maccemacroman sjisswe7 tis620ucs2 ujisutf8 utf8mb4utf16 utf16leutf32。允许的字符集在cmake/character_sets.cmake文件中被列为 CHARSETS_AVAILABLE
  16. 该值可以在服务器启动时使用该--character_set_server选项进行设置
  17.  
  18. -DDEFAULT_COLLATION=collation_name
  19. 服务器整理。默认情况下,MySQL使用 latin1_swedish_ci。使用该 SHOW COLLATION语句来确定每个字符集可用的排序规则。
  20. 该值可以在服务器启动时使用该--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配置:

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

错误总结:

  1. MySQL5..17cmake的时候报错如下:
  2.  
  3. 点击(此处)折叠或打开
  4.  
  5. CMake Error at cmake/boost.cmake: (MESSAGE):
  6. You can download it with -DDOWNLOAD_BOOST= -DWITH_BOOST=
  7. This CMake script will look for boost in . If it is not there,
  8. it will download and unpack it (in that directory) for you.
  9. If you are inside a firewall, you may need to use an http proxy:
  10. export http_proxy=http://example.com:80
  11. Call Stack (most recent call first):
  12. cmake/boost.cmake: (COULD_NOT_FIND_BOOST)
  13. CMakeLists.txt: (INCLUDE)
  14. -- Configuring incomplete, errors occurred!
  15. See also "/root/mysqlsoftware/mysql-5.7.17/CMakeFiles/CMakeOutput.log".
  16. See also "/root/mysqlsoftware/mysql-5.7.17/CMakeFiles/CMakeError.log".
  17. 解决办法是:
  18. .在/usr/local下创建一个名为boost的文件夹
  19. mkdir -p /usr/local/boost
  20. .进入这个新创建的文件夹然后下载boost
  21. wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
  22. .解压
  23. tar -xvzf boost_1_59_0.tar.gz
  24. .继续cmake,添加上红色部分
  25.  
  26. cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  27. -DDEFAULT_CHARSET=utf8 \
  28. -DDEFAULT_COLLATION=utf8_general_ci \
  29. -DENABLED_LOCAL_INFILE=ON \
  30. -DWITH_INNOBASE_STORAGE_ENGINE= \
  31. -DWITH_FEDERATED_STORAGE_ENGINE= \
  32. -DWITH_BLACKHOLE_STORAGE_ENGINE= \
  33. -DWITHOUT_EXAMPLE_STORAGE_ENGINE= \
  34. -DWITH_PARTITION_STORAGE_ENGINE= \
  35. -DWITH_PERFSCHEMA_STORAGE_ENGINE= \
  36. -DCOMPILATION_COMMENT='Mysqlma' \
  37. -DWITH_READLINE=ON \
  38. -DWITH_BOOST=/usr/local/boost \
  39. -DSYSCONFDIR=/data/mysqldata/ \
  40. -DMYSQL_UNIX_ADDR=/data/mysqldata//mysql.sock
  1. -DWITH_BOOST=path_name
  2.  
  3. Boost库是构建MySQL所必需的。这些 CMake选项可以控制库源位置,以及是否自动下载它:
  4.  
  5. -DWITH_BOOST=path_name 指定Boost库目录位置。也可以通过设置BOOST_ROOT WITH_BOOST环境变量来指定Boost位置
  6.  
  7. MySQL 5.7.11开始,它 -DWITH_BOOST=system是允许的,并且表示在标准位置的编译主机上安装了正确版本的Boost。在这种情况下,使用的是Boost的安装版本,而不是MySQL源代码发行版中包含的任何版本。
  8.  
  9. -DDOWNLOAD_BOOST=bool 指定是否在指定位置不存在的情况下下载Boost源。默认是 OFF
  10.  
  11. -DDOWNLOAD_BOOST_TIMEOUT=seconds 下载Boost库的超时时间(秒)。默认值是600秒。
  12.  
  13. 例如,如果您通常构建MySQL,将对象输出放置在bldMySQL源代码树的子目录中,则可以使用Boost构建,如下所示:
  14.  
  15. mkdir bld
  16. cd bld
  17. cmake .. -DDOWNLOAD_BOOST=ON -DWITH_BOOST=$HOME/my_boost
  18. 这会导致Boost被下载到 my_boost您的主目录下的目录中。如果所需的Boost版本已经存在,则不进行下载。如果所需的Boost版本更改,则会下载较新的版本。
  19.  
  20. 如果Boost已经在本地安装,并且编译器自己找到Boost头文件,则可能不需要指定前面的CMake选项。但是,如果MySQL所需的Boost版本发生更改并且本地安装的版本尚未升级,则可能会出现构建问题。使用CMake 选项应该给你一个成功的构建。
  21.  
  22. 通过上述允许将Boost下载到指定位置的设置,当所需的Boost版本发生更改时,您需要删除该bld文件夹并重新创建该文件夹,然后再次执行cmake步骤。否则,新的Boost版本可能无法下载,编译可能会失败。
  1. http://blog.csdn.net/cryhelyxx/article/details/47610247 问题的解决
  1. bin/mysqld --initialize --user=mysql  初始化mysql。指定用户 --initialize会自动生成密码
  1. cp /opt/mysql-5.7./support-files/mysql.server /etc/init.d/mysqld
  1. /etc/init.d/mysqld start
  1. echo 'export PATH=/application/mysql/bin:$PATH'>>/etc/profile
  1. 在不知道mysql root密码的情况下修改密码
  2. [root@cairui mysql]# bin/mysqld_safe --skip-grant-tables &
  3. mysql中输入一下命令
  4. update mysql.user set authentication_string=password('root') where user='root' ;
  1. 加入开机启动
  2. [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源码配置安装的更多相关文章

  1. Dubbo入门到精通学习笔记(十九):MySQL源码编译安装、MySQL主从复制的配置

    文章目录 MySQL 源码编译安装(CentOS-6.6+MySQL-5.6) 一.服务器配置: 二.源码安装 MySQL5.6.26: MySQL主从复制的配置 环境 依赖课程 MySQL 主从复制 ...

  2. mysql源码版安装

    mysql源码版安装 创建配置文件 创建 my.ini,注意修改,如下的 设置mysql的安装目录和设置mysql数据库的数据的存放目录,设置自己本机的上的对应路径 [mysql] # 设置mysql ...

  3. ubuntu下mysql源码编译安装

    建议:cpu4核以上,内存4G以上 1. 安装环境:Ubuntu Server 14.10MySQL-5.6.23.tar.gz 2. 安装必备的工具sudo apt-get install make ...

  4. mysql源码编译安装

    首先去官网http://dev.mysql.com/downloads/mysql/ 下载mysql源码.我下的是5.7.10 源码选择的是 Generic Linux (Architecture I ...

  5. Mysql源码编译安装&主从复制

    一)camke源码编译安装mysql 1)创建软件安装目录software [root@master software]# ls cmake-2.8.8.tar.gz mysql-5.5.32.tar ...

  6. MySQL 源码编译安装

    脚本须知: 1. 该脚本目前只测试过mysql版本为5.6.x的源码,其他源码可以对本脚本稍作修改即可 2. 本脚本也可以使用wget mysql源码的方式进行,但考虑到后期提供源码的地址不可用,所以 ...

  7. mysql源码包安装

    一.准备编译环境 # yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake # wget ht ...

  8. MySQL 源码编译安装脚本

    cat mysql_init.shmysql_init.sh               mysql_init.sh.20190401      mysql_init.sh.back20171030  ...

  9. Mysql 源码编译安装 ( 5.5 、5.6 共存 )

    简介: 如何在一台服务器同时运行两 ( 多 ) 个 MySQL 服务. 1.MySQL 5.6 shell > useradd -r -s /sbin/nologin mysql shell & ...

随机推荐

  1. Python多进程-进程锁

    多进程虽然不允许多个进程同时修改同一份数据,但是多进程也有锁,为了在屏幕上打印的时候不出现两个进程同时执行的显示错误 # -*- coding:utf-8 -*- __author__ = " ...

  2. 2015.1.4 判断鼠标点击DataGridView的第几行还是空白处

    public int GetRowIndexAt(int mouseLocation_Y) { if (dvaw.FirstDisplayedScrollingRowIndex < 0) { r ...

  3. Ubuntu中vi命令的使用

    指今说明: 进入 vi 的命令vi filename: 打开或新建文件,并将光标置于第一行首 vi +n filename: 打开文件,并将光标置于第n行首 vi + filename: 打开文件,并 ...

  4. Shell编程进阶 1.4 shell自定义变量

    变量 系统自带变量 echo $PATH $HOME $PWD 自定义变量 # a= # echo $a1 # b= # echo $b2 写与用户交互的脚本 vim .sh #!/bin/bash ...

  5. C语言学习笔记--动态内存分配

    1. 动态内存分配的意义 (1)C 语言中的一切操作都是基于内存的. (2)变量和数组都是内存的别名. ①内存分配由编译器在编译期间决定 ②定义数组的时候必须指定数组长度 ③数组长度是在编译期就必须确 ...

  6. Java Swing 如何让窗体居中显示

    如题,其他不多说,直接上代码! package com.himarking.tool; import java.awt.Toolkit; import javax.swing.JFrame; @Sup ...

  7. cocos2dx中替代goto的用法:do{}while(0)和CC_BREAK_IF

    我们时常会调用某个函数来创建一个对象,但由于内存不足或其他异常情况发生时对象可能会创建失败,创建失败我们就要结束当前程序转到错误处理地方去处理错误或释放已生成的对象. int* p1 = new in ...

  8. 正割、余割、正弦、余弦、正切、余切之间的关系的公式 sec、csc与sin、cos、tan、cot之间的各种公式

    1.倒数关系 tanα ·cotα=1 sinα ·cscα=1 cosα ·secα=1 2.商数关系 tanα=sinα/cosα cotα=cosα/sinα 3.平方关系 sinα²+cosα ...

  9. 树莓派研究笔记(3)-- 安装VNC

    小屏幕太小了,眼睛快看瞎了,必须安装VNC 才行啊. 更新—2018-02-04 最新版本的系统中自带了VNC了,只需要在 菜单 Preferences -> Raspberry Pi Conf ...

  10. C和C++中文件读写的区别

    C中采用的主要是文件指针的办法,C++中对文件的操作主要运用了“文件流”(即非标准的输入输出)的思想 eg1": #include<stdio.h> //... FILE* fp ...