完整版见https://jadyer.github.io/2014/09/29/centos-install-mysql/

/**
* CentOS-6.4-minimal版中源代码安装MySQL-5.5.38
* ----------------------------------------------------------------------------------------------------------------------
* 三种安装方式
* 1)源代码安装
* 2)二进制包安装
* 3)rpm或yum安装
* 本文演示的是源代码安装,而且,从mysql-5.5開始,源代码安装要通过cmake安装,不能再像曾经使用configure安装了
* 我们在mysql-5.5.38.tar.gz的根文件夹中,会看到一个名为"BUILD-CMAKE"的文件,打开能够看到以下这句话
* WHAT YOU NEED : CMake version 2.6 or later installed on your system.
* ----------------------------------------------------------------------------------------------------------------------
* 安装CMake(cross platform make)
* cmake的特性是独立于源代码编译,编译工作能够在另外一个文件夹中而非源代码文件夹中进行,优点是能够保证源代码文件夹不受不论什么一次编译的影响
* cmake安装方法详见官方文档http://www.cmake.org/install/,我们到http://www.cmake.org/download/下载cmake-3.0.2.tar.gz
* [root@CentOS64 software]# cmake -version #我们会发现没有输出,说明本机并未安装cmake
* [root@CentOS64 software]# yum list cmake --showduplicates #查看yum可安装的软件包版本号,会看到仅仅能安装cmake-2.6.4-5.el6版本号,故舍弃
* [root@CentOS64 software]# yum -y install gcc gcc-c++ #安装必要的编译环境
* [root@CentOS64 software]# yum -y install autoconf libtool #安装必要的编译环境
* [root@CentOS64 software]# yum -y install ncurses-devel #安装必要的编译环境(这是配置MySQL环境变量时要用的库,这里一起安装了)
* [root@CentOS64 software]# tar zxvf cmake-3.0.2.tar.gz #解压cmake-3.0.2源代码
* [root@CentOS64 software]# cd cmake-3.0.2 #进入cmake-3.0.2源代码文件夹
* [root@CentOS64 cmake-3.0.2]# ./bootstrap #成功时,会提示CMake has bootstrapped. Now run gmake.
* [root@CentOS64 cmake-3.0.2]# gmake #运行编译
* [root@CentOS64 cmake-3.0.2]# gmake install #运行安装
* [root@CentOS64 cmake-3.0.2]# cd ~ #退出cmake-3.0.2源代码文件夹
* [root@CentOS64 ~]# rm -rf /app/software/cmake-3.2.0* #删除cmake-3.0.2源代码
* [root@CentOS64 ~]# cmake -version #验证cmake-3.0.2安装结果
* ----------------------------------------------------------------------------------------------------------------------
* @create Sep 28, 2014 5:47:18 PM
* @author 玄玉<http://blog.csdn.net/jadyer>
*/
/**
* ----------------------------------------------------------------------------------------------------------------------
* 安装MySQL
* [root@CentOS64 ~]# groupadd -r mysql
* [root@CentOS64 ~]# useradd -r -s /sbin/nologin -g mysql mysql
* [root@CentOS64 ~]# mkdir -pv /app/mysql
* [root@CentOS64 ~]# mkdir -pv /app/mysql_data
* [root@CentOS64 ~]# chown -R mysql.mysql /app/mysql_data
* [root@CentOS64 ~]# tar zxvf /app/software/mysql-5.5.38.tar.gz
* [root@CentOS64 ~]# cd mysql-5.5.38/
* [root@CentOS64 mysql-5.5.38]# cmake . -DCMAKE_INSTALL_PREFIX=/app/mysql -DMYSQL_DATADIR=/app/mysql_data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_ZLIB=system -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
* [root@CentOS64 mysql-5.5.38]# make
* [root@CentOS64 mysql-5.5.38]# make install
* ----------------------------------------------------------------------------------------------------------------------
* 配置MySQL
* [root@CentOS64 ~]# cd /app/mysql/support-files/
* [root@CentOS64 support-files]# cp my-large.cnf /etc/my.conf #拷贝配置文件
* [root@CentOS64 support-files]# cp mysql.server /etc/init.d/mysqld #拷贝启动脚本
* [root@CentOS64 support-files]# chmod -x /etc/init.d/mysqld #赋予可运行权限
* [root@CentOS64 support-files]# chkconfig --add mysqld #加入系统服务
* [root@CentOS64 support-files]# chkconfig mysqld on #开机启动
* [root@CentOS64 support-files]# vi /etc/profile.d/mysql.sh #手动创建,加入内容为[export PATH=$PATH:/app/mysql/bin]
* [root@CentOS64 support-files]# source /etc/profile.d/mysql.sh #运行一遍
* [root@CentOS64 support-files]# echo $PATH #查看结果
* [root@CentOS64 support-files]# cd /app/mysql #进入MySQL主文件夹
* [root@CentOS64 mysql]# bin/mysql_secure_installation #会提示设置rootpassword,是否移除匿名用户,是否禁止root远程登录等等
* ----------------------------------------------------------------------------------------------------------------------
* 改动配置文件/etc/my.cnf
* 在[mysqld]以下添加或改动以下属性
* user = mysql
* basedir = /app/mysql
* datadir = /app/mysql_data
* pid-file = /app/mysql_data/mysqld.pid
* ft_min_word_len = 4
* max_allowed_packet = 32M
* character-set-server = urf8
* skip-name-resolve
* ----------------------------------------------------------------------------------------------------------------------
* 初始化MySQL
* [root@CentOS64 ~]# /app/mysql/scripts/mysql_install_db --basedir=/app/mysql --datadir=/app/mysql_data --user=mysql
* ----------------------------------------------------------------------------------------------------------------------
* 启动MySQL
* [root@CentOS64 ~]# service mysqld start
* [root@CentOS64 ~]# netstat -tlanop | grep :3306
* [root@CentOS64 ~]# mysql -uroot -phongyu
* ----------------------------------------------------------------------------------------------------------------------
* @create Sep 29, 2014 11:04:27 AM
* @author 玄玉<http://blog.csdn.net/jadyer>
*/
/**
* ----------------------------------------------------------------------------------------------------------------------
* 注意事项
* 1)安装必要的编译环境时,也能够使用[um -y groupinstall "Development tools"]命令,但这会安装大约101个库,太粗暴,不建议
* 2)useradd -s /sbin/nologin
* 该命令用于设置加入的用户默认bash为nologin,即不同意此用户通过shell登录系统
* 3)/app/mysql/ 文件夹为MySQL数据库主程序文件夹
* /app/mysql_data/文件夹为MySQL数据文件文件夹
* 4)假设在cmake配置环境的过程中出错,比方提示ncurses-devel not found,当yum install后,想又一次配置环境时,要先清除旧的对象文件和缓存信息
* [root@CentOS64 mysql-5.5.38]# make clean
* [root@CentOS64 mysql-5.5.38]# rm -f CMakeCache.txt
* [root@CentOS64 mysql-5.5.38]# rm -rf /etc/my.cnf
* 5)初始化MySQL时,要跟上--basedir和--datadir參数
* 否则会因为相对路径的关系,而报告FATAL ERROR: Could not find ./bin/my_print_defaults
* 6)启动MySQL时提示[env: /etc/init.d/mysqld: 权限不够]
* 此时运行[chmod -x /etc/init.d/mysqld]是不行的,须要运行[chmod a+wrx /etc/init.d/mysqld]
* 然后运行[service mysqld start]就可以启动,启动成功时会看到[Starting MySQL.... SUCCESS!]
* 注意此操作全程为root用户
* 7)安装并启动完MySQL后,默认不支持用户通过非本机的client连接到MySQL,解决的方法例如以下
* [root@CentOS64 ~]# mysql -uroot -phongyu
* mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'hongyu22' WITH GRANT OPTION;
* mysql> FLUSH PRIVILEGES;
* mysql> exit
* 如此,全部用户就都能够连接到MySQL了,只是注意连接时使用的password是hongyu22,而非hongyu
* 当中,['root'@'%']里面的root表示username,%代表随意主机或IP地址,能够依据实际须要改动username或主机IP
* 而且,这里授权是授权全部权限,当然也能够指定部分权限,详见官方文档http://dev.mysql.com/doc/refman/5.5/en/grant.html
* 8)通过以上操作,若client仍无法连接MySQL,可尝试下面办法
* 改动/etc/sysconfig/iptables文件,添加一行[-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT]
* 接着再运行[service iptables restart]命令重新启动防火墙就可以,不须要重新启动Linux
* 具体说明见http://blog.csdn.net/jadyer/article/details/11324237
* ----------------------------------------------------------------------------------------------------------------------
* 编译选项(其他參数见官方文档)
* -DCMAKE_INSTALL_PREFIX=/app/mysql #数据库安装路径(默觉得/usr/local/mysql),该參数可在启动服务时用--basedir參数指定
* -DINSTALL_PLUGINDIR=/usr/local/mysql/plugin #插件文件及配置路径
* -DMYSQL_DATADIR=/app/mysql_data #数据文件路径
* -DSYSCONFDIR=/etc #配置文件路径
* -DWITH_INNOBASE_STORAGE_ENGINE=1 #安装InnoDB存储引擎
* -DWITH_MYISAM_STORAGE_ENGINE=1 #安装MyISAM存储引擎
* -DWITH_ARCHIVE_STORAGE_ENGINE=1 #安装archive存储引擎
* -DWITH_BLACKHOLE_STORAGE_ENGINE=1 #安装blackhole存储引擎
* -DWITHOUT_BLACKHOLE_STORAGE_ENGINE=1 #取消安装blackhole存储引擎
* -DWITH_READLINE=1 #支持批量导入mysql数据
* -DWITH_SSL=yes #支持SSL
* -DWITH_SSL=system #mysql支持ssl会话,实现基于ssl的数据复制
* -DWITH_ZLIB=system #压缩库
* -DWITH_LIBWRAP=0 #能否够基于WRAP实现訪问控制
* -DMYSQL_USER=mysql #MySQLusername
* -DMYSQL_TCP_PORT=3306 #MySQL监听端口
* -DMYSQL_UNIX_ADDR=/tmp/mysql.sock #指定socket文件存放位置
* -DENABLED_LOCAL_INFILE=1 #是否启用LOCAL_INFILE功能,即同意从本地导入数据
* -DEXTRA_CHARSETS=all #安装全部扩展字符集
* -DDEFAULT_CHARSET=utf8 #默认编码机制
* -DDEFAULT_COLLATION=utf8_general_ci #默认语言的排序规则(校验字符)
* -DWITH_DEBUG=0 #DEBUG功能设置
* -DENABLE_PROFILING=1 #是否启用性能分析功能
* ----------------------------------------------------------------------------------------------------------------------
* @create Sep 29, 2014 11:05:06 AM
* @author 玄玉<http://blog.csdn.net/jadyer>
*/

CentOS-6.4-minimal版中源代码安装MySQL-5.5.38的更多相关文章

  1. ArcGIS Enterprise 10.5.1 静默安装部署记录(Centos 7.2 minimal)- 5、安装Datastore

    安装Datastore 解压datastore安装包,tar -xzvf ArcGIS_DataStore_Linux_1051_156441.tar.gz 切换到arcgis账户静默安装server ...

  2. ArcGIS Enterprise 10.5.1 静默安装部署记录(Centos 7.2 minimal)- 4、安装 ArcGIS for Server

    安装ArcGIS for Server 解压server安装包,tar -xzvf ArcGIS_Server_Linux_1051_156429.tar.gz 切换到arcgis账户静默安装serv ...

  3. ArcGIS Enterprise 10.5.1 静默安装部署记录(Centos 7.2 minimal)- 3、安装Portal for ArcGIS

    安装Portal for ArcGIS 解压portal安装包,tar -xzvf Portal_for_ArcGIS_Linux_1051_156440.tar.gz 切换到arcgis账户静默安装 ...

  4. ArcGIS Enterprise 10.5.1 静默安装部署记录(Centos 7.2 minimal)- 2、安装WebAdapter

    解压webadapter安装包,tar -xzvf Web_Adaptor_Java_Linux_1051_156442.tar.gz 进入下Webadapter目录下静默安装 ./Setup -m ...

  5. ArcGIS Enterprise 10.5.1 静默安装部署记录(Centos 7.2 minimal)- 1、安装前准备

    安装前准备 上传文件到服务器,x-ftp   xshell登陆Centos 检查机器名 修改机器名为:portal.cloud.local   方法一:零时设置,重启后失效,该方法不可取     方法 ...

  6. CentOS 6.6 下源码编译安装MySQL 5.7.5

    版权声明:转自:http://www.linuxidc.com/Linux/2015-08/121667.htm 说明:CentOS 6.6 下源码编译安装MySQL 5.7.5 1. 安装相关工具# ...

  7. windows中配置安装mysql数据库

    MySql 是一种免费的关系型数据库,相较于 MsSqlServer 和 Oracle 比较轻量化,安装也很简单,而且免费不需要的版权费用,个人认为一般的小项目采用还是比较合适的,当然也有部分数据量很 ...

  8. centos 6.X minimal 系列最小化安装完成后,安装mono和jexus过程小记录

    在使用虚拟机安装minimal版centos运行mono+jexus的时候,遇到了一些坑,记录一下,比如虚拟机访问不了网络,没wget命令没开放80端口,等等小问题,其他网上教程已经有mono+jex ...

  9. 通过Minimal版的iso安装CentOS7之后升级Desktop

    重新安装了CentOS7,但是使用的是Minimal的iso镜像安装的,所以安装之后只有文本界面,这里记录一下重新安装图形界面的过程. 连接网络 通过文本界面登陆后是没有连接网络的,所以需要修改配置连 ...

随机推荐

  1. thinkphp 多个字段的不同关系的查询条件实现 .

    tp的$map不同条件默认是 and ,如果要用or<><><><>如下 例如查询Stu表中年龄大于18,或者身高低于180cm的男性(1为男性),(例 ...

  2. tp框架报错 Namespace declaration statement has to be the very first statement in the script

    Namespace declaration statement has to be the very first statement in the script tp框架报这个错误,错误行数就是nam ...

  3. CF16A Flag

    CF16A Flag 题意翻译 题目描述 根据一项新的ISO标准,每一个国家的国旗应该是一个n×m的格子场,其中每个格子最多有10种不同的颜色.并且国旗应该有条纹:旗帜的每一行应包含相同颜色的方块,相 ...

  4. Spring+mybatis+struts框架整合的配置具体解释

    学了非常久的spring+mybatis+struts.一直都是单个的用他们,或者是两两组合用过,今天总算整合到一起了,配置起来有点麻烦.可是配置完一次之后.就轻松多了,那么框架整合配置具体解释例如以 ...

  5. 2014年辛星解读css第三节

    第二节我们讲述的差点儿全是CSS的选择器,那么以下这一节我们来讲一下CSS的颜色和文本的一些东西,尽管我对调色不大敏感.可是对于颜色还是比較感兴趣的. *********CSS中的颜色******** ...

  6. python实战之编码问题:中文!永远的痛

    编码的思维图谱: 也就是说文件没有编码之说,事实上都是按二进制格式保存在硬盘中的.不过在写入读取时须使用相应的编码进行处理,以便操作系统配合相关软件/字体,绘制到屏幕中给人看.所以关键问题是得知道原先 ...

  7. Sping框架中的注解详解

    传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点:1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分开.xml文件 ...

  8. STL 之 iterator traits 备忘

    //5种迭代器.为了激活重载机制,定义的5个类型.每种迭代器就是一个类型. struct input_iterator_tag{}; struct output_iterator_tag{}; str ...

  9. Swift 3.0 (二)

    一:函数 1.1无参数无返回值的简单函数 func sendMessage(){ let message = "Hey, Guys!" print(message) } sendM ...

  10. setsockopt 设置socket

    1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO ...