文档章节

MySQL源码编译安装(CentOS6.7 + MySql5.6)

lost_keke
 lost_keke
发布于 2017/05/20 16:13
字数 1531
阅读 56
收藏 0

一、部署环境

操作系统:CentOS-6.7-x86_64-bin-DVD1.iso
MySQL 版本:mysql-5.6.26.tar.gz
操作用户:root
系统IP:10.1.50.220
主机名:CentOS-mysql-01

二、服务器配置

1. 配置网络

$ vim /etc/sysconfig/network-scripts/ifcfg-eth0
#以下四项未修改,保留装机后的默认值
DEVICE=eth0
HWADDR=08:00:27:52:E7:EE
TYPE=Ethernet
UUID=722c608f-4d7f-4e7c-a915-0b952f48864e
#从no改为yes
ONBOOT=yes
#从yes改为no
NM_CONTROLLED=no
#从dhcp改为static
BOOTPROTO=static
#与主机ip设置为同一网段    主机ip:10.1.50.87
IPADDR=10.1.50.220
#以下为新增
NETMASK=255.255.0.0     #与主机子网掩码设置一致
GATEWAY=10.1.254.1      #与主机默认网关设置一致
DNS1=223.5.5.5
DNS2=223.6.6.6

2. 设置主机名

$ vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=CentOS-mysql-01

3. 设置ip与主机名映射

$ vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1   CentOS-mysql-01
10.1.50.220 CentOS-mysql-01

4. disable selinux

$ vim /etc/selinux/config
SELINUX=disabled

5. 重启操作系统

$ reboot

三、源码安装MySQL5.6.26

1. 检查是否安装有MySQL Server

$ rpm -qa | grep mysql

# CentOS7以上
$ rpm -qa | grep mariadb

# 如果有,卸载
$ rpm -e [mysql]
# 上面的命令卸载不掉,使用下面的命令
$ rpm -e --nodeps [mysql]

2. 改防火墙设置,打开3306 端口

$ vim /etc/sysconfig/iptables

#增加如下行:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

3. 重启防火墙

$ service iptables restart

4. 新增mysql用户组

$ groupadd mysql

5. 新增mysql用户,并添加到mysql用户组

$ useradd -r -g mysql mysql

6. 新建MySQL执行文件目录

$ mkdir -p /usr/local/mysql #-p 参数的作用是:如果最终目录的父目录不存在也会一并创建

7. 新建MySQL 数据库数据文件目录

$ mkdir -p /home/mysql/data
$ mkdir -p /home/mysql/logs
$ mkdir -p /home/mysql/temp

#注意:上面的logs 及temp 目录是为了以后将MySQL 的数据文件与执行程序文件分离,
#如果你打算设置到不同的路径,注意修改对应#的执行命令和数据库初始化脚本。
#正式生产环境,建议数据目录和日志目录都使用单独的分区来挂载,不同分区属于不同的磁盘或磁盘组

8. 增加PATH 环境变量搜索路径

$ vi /etc/profile

#在profile 文件末尾增加两行
# mysql env param
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export PATH

#使PATH 搜索路径立即生效:
$ source /etc/profile

9. 安装编译MySQL需要的依赖包

$ yum install make cmake gcc gcc-c++ bison bison-devel ncurses ncurses-devel autoconf automake

10. 上传mysql-5.6.26.tar.gz、解压、安装

#进入/usr/local/src 目录,上传mysql-5.6.26.tar.gz 源代码到/usr/local/src 目录
$ cd /usr/local/src

# 解压缩源码包:
$ tar -zxvf mysql-5.6.26.tar.gz

#进入解压缩源码目录:
$ cd mysql-5.6.26

#使用cmake 源码安装mysql
$ cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_MEMORY_STORAGE_ENGINE=1 \-DWITH_READLINE=1 \-DENABLED_LOCAL_INFILE=1 \-DMYSQL_DATADIR=/home/mysql/data \-DMYSQL_USER=mysql \-DMYSQL_TCP_PORT=3306 \-DENABLE_DOWNLOADS=1

$ make

$ make install
# 注意:如果需要重装mysql,在/usr/local/src/mysql-5.6.26 在执行下make install 就可以了,不需要再cmake 和make

$ make clean

11. 修改mysql 目录拥有者为mysql 用户

$ chown -Rf mysql:mysql /usr/local/mysql
$ chown -Rf mysql:mysql /home/mysql

12. 执行初始化配置脚本,创建系统自带的数据库和表

# 注意:路径/home/mysql/data 需要换成你自定定义的数据库存放路径
$ scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data

13. 更改my.cnf所有者

# 初始化脚本在/usr/local/mysql/下生成了配置文件my.cnf,需要更改该配置文件的所有者
$ chown -Rf mysql:mysql /usr/local/mysql/my.cnf

注意:
(1)在启动MySQL 服务时,会按照一定次序搜索my.cnf,先在/etc 目录下找,找不到则会搜索mysql 程序目录下是否有my.cnf
(2)需要注意CentOS 6 版操作系统的最小安装完成后,即使没有安装mysql,在/etc 目录下也会存在一个my.cnf 文件,建议将此文件更名为其他的名字,否则该文件会干扰源码安装的MySQL 的正确配置,造成无法启动。修改/etc/my.cnf 操作如下:可以:mv /etc/my.cnf /etc/my.cnf.bak 也可以:删除掉/etc/my.cnf 这个文件:rm /etc/my.cnf
如果你需要用于生产环境,不要急着做下面的mysql 启动操作。建议把上一步骤中mysql 初始化生的/usr/local/mysql/my.cnf 删除,然后把你优化好的mysql 配置文件my.cnf 放到/etc下。
我们这里使用/etc/my.cnf

14. 编辑my.cnf

$ vim my.cnf

[client]
port = 3306
socket = /usr/local/mysql/mysql.sock

[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci

skip-external-locking
skip-name-resolve

user = mysql
port = 3306
basedir = /usr/local/mysql
datadir = /home/mysql/data
tmpdir = /home/mysql/temp
socket = /usr/local/mysql/mysql.sock
log-error = /home/mysql/logs/mysql_error.log
pid-file = /home/mysql/data/CentOS-mysql-01.pid
open_files_limit = 10240

back_log = 600
max_connections=500
max_connect_errors = 6000
wait_timeout=605800

#open_tables = 600
#table_cache = 650
#opened_tables = 630

max_allowed_packet = 32M

sort_buffer_size = 4M
join_buffer_size = 4M
thread_cache_size = 300
query_cache_type = 1
query_cache_size = 256M
query_cache_limit = 2M
query_cache_min_res_unit = 16k

tmp_table_size = 256M
max_heap_table_size = 256M

key_buffer_size = 256M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M

lower_case_table_names=1

default-storage-engine = INNODB

innodb_buffer_pool_size = 2G
innodb_log_buffer_size = 32M
innodb_log_file_size = 128M
innodb_flush_method = O_DIRECT

thread_concurrency = 32
long_query_time= 2
slow-query-log = on
slow-query-log-file = /home/mysql/logs/mysql-slow.log

15. 复制服务启动脚本

$ cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

16. 启动MySQL 服务

$ service mysql start

17. 设置MySQL 开机自动启动服务

$ chkconfig mysql on

18. 设置MySQL 数据库root 用户的本地登录密码(初始用户没有密码)

$ mysqladmin -u root password 'root'

19. 登录并修改MySQL 用户root 的密码

$ mysql -u root -p

# 输入密码,进入mysql
mysql> use mysql;

# 修改root 用户密码
mysql> update user set Password = password('root') where user='root'; 
mysql> flush privileges;

# 允许root 远程登录,设置远程登录密码
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; 
mysql> flush privileges;
mysql> exit;

20. 运行安全设置脚本

$ /usr/local/mysql/bin/mysql_secure_installation

Enter current password for root (enter for none): ----->此处输入root 密码

Change the root password? [Y/n] n -----> 上已为root 设置了密码,此处可输n

Remove anonymous users? [Y/n] Y ------> 删除匿名用户

Disallow root login remotely? [Y/n] n -----> 一般不允许root 远程登录,可添加普通用户,然后设置允许远程登录

Remove test database and access to it? [Y/n] Y -----> 删除test 库及相应权限

Reload privilege tables now? [Y/n] Y -----> 重新加载权限表使设置生效

21. 重启服务器,检测mysql 是否能开机自动启动

$ reboot

 

本文转载自:

lost_keke
粉丝 15
博文 34
码字总数 17914
作品 0
深圳
程序员
私信 提问
centos6.7源码安装mysql5.6

安装配置: 1. 下载编译好的二进制安装包 官网地址:http://dev.mysql.com/downloads/mysql/ 2. 进入安装包目录,解压安装包 #tar –xzvf mysql-5.6.30-x64.tar.gz 3. 复制解压后的mysql目录...

miaojiangmin
2016/10/30
1
0
centos6.7源码安装mysql5.6

安装配置: 1. 下载编译好的二进制安装包 官网地址:http://dev.mysql.com/downloads/mysql/ 2. 进入安装包目录,解压安装包 #tar –xzvf mysql-5.6.30-x64.tar.gz 3. 复制解压后的mysql目录...

rock912
2016/10/18
11
0
安装php工作在fast-cgi模式并用xcache加速

OS: centos6.7 软件版本:apache2.4,mysql5.5,php5.5,xcache3.2 确保已经安装的包组: Development Tools Server Platform Development Desktop Platform Development 一 安装mysql的通用二进......

码上有春天
2016/08/28
9
0
同一服务器上二进制安装mysql5.7和mysql5.6

一、二进制包与源码包的区别 二进制包和源码包是软件包的两种形式。源码包里面包含程序原始的代码,需要在计算机上进行编译后才可以产生可运行程序,所以源码安装时间会比较长;而二进制包里...

江雪月青
01/04
0
0
初识MariaDB之1——MariaDB的安装

一、MariaDB介绍 MariaDB是Mysql在被Oracle收购后由原作者重新开发的一种关系型数据库程序,由于是同一个作者,所以在操作上与Mysql十分类似,版本也是相互对应,如:MariaDB5.5对应Mysql的5...

qiao645
2018/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JWT学习总结

官方 https://jwt.io 英文原版 https://www.ietf.org/rfc/rfc7519.txt 或 https://tools.ietf.org/html/rfc7519 中文翻译 https://www.jianshu.com/p/10f5161dd9df 1. 概述 JSON Web Token(......

冷基
今天
4
0
AOP的学习(1)

AOP 理解AOP编程思想(面向方法、面向切面) spring AOP的概念 方面 -- 功能 目标 -- 原有方法 通知 -- 对原有方法增强的方法 连接点 -- 可以用来连接通知的地方(方法) 切入点 -- 将用来插入...

太猪-YJ
今天
4
0
一张图看懂亮度、明度、光度、光亮度、明亮度

亮度、明度、光亮度,Luminance和Brightness、lightness其实都是一个意思,只是起名字太难了。 提出一个颜色模型后,由于明度的取值与别人的不同,为了表示区别所以就另想一个词而已。 因此在...

linsk1998
昨天
11
0
Python应用:python链表示例

前言 python链表应用源码示例,需要用到python os模块方法、函数和类的应用。 首先,先简单的来了解下什么是链表?链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是...

python小白1
昨天
5
0
Source Insight加载源码

Source Insight是一个图形化的源代码查看工具(当然也可以作为编译工具)。如果一个项目的源代码较多,此工具可以很方便地查找到源代码自建的依赖关系。 1.创建工程 下图为Snort源代码的文件...

天王盖地虎626
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部