Mysql5.6源码包安装

时间:2022-05-23 17:12:30

1. 概述

1.1 目标

搭建测试,生产数据库参照文档。

2. 安装包检查

2.1 安装make编译器

make编译器下载地址:http://www.gnu.org/software/make/

(系统默认自带)查看自己的系统是否安装某个软件,如果已经有了,就不用在安装了,但是也有可能之前被卸载了。

如果你之前是使用rpm -ivh make装的,用

# rpm -qa | grep make肯定是能够找到的。

如果你是用

make && make install装的。那么最好直接去找执行程序,就知道有没装上去

# find / -name matlab

如果装了,它会告诉你执行程序被释放到哪个目录了。

++++++++++++++++++++++++++++++++++++++++++

# rpm -qa 是查看该软件是否被安装,# grep和# find是查看文件位置

++++++++++++++++++++++++++++++++++++++++++

# tar zxvf make-3.82.tar.gz

# cd make-3.82

# ./configure

# make

# make install

或者

[root@testdb1 ~]# rpm -qa |grep make

make-3.81-3.el5

2.2 安装bison

bison下载地址:http://www.gnu.org/software/bison/

# tar zxvf bison-2.5.tar.gz

# cd bison-2.5

# ./configure

# make

# make install

或者

[root@testdb1 ~]# rpm -qa |grep bison

bison-2.3-2.1

2.3 安装gcc-c++

gcc-c++下载地址:http://www.gnu.org/software/gcc/

# tar zxvf gcc-c++-4.4.4.tar.gz

# cd gcc-c++-4.4.4

#./configure

# make

# make install

2.4 安装cmake

cmake下载地址:http://www.cmake.org/

# tar zxvf cmake-2.8.4.tar.gz

# cd cmake-2.8.4

#./configure

# make

# make install

2.5 安装ncurses

ncurses下载地址:http://www.gnu.org/software/ncurses/

# tar zxvf ncurses-5.8.tar.gz

# cd ncurses-5.8

#./configure

# make

# make install

2.6 备注使用yum全部安装

yum install gcc gcc-c++

yum install -y ncurses-devel

yum install -y cmake

yum install -y libaio

yum install -y bison

3. 安装mysql数据库

3.1 解压mysql安装文件

MySQL5.6下载地址:http://dev.mysql.com/

这里我在这里下载的mysql-5.6.12.tar.gz

ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.6/

准备工作

# groupadd mysql

# useradd mysql -g mysql -M -s /sbin/nologin

#增加一个名为 mysql的用户。

-g:指定新用户所属的用户组(group)

-M:不建立根目录

-s:定义其使用的shell,/sbin/nologin代表用户不能登录系统。

解压并安装MySQL

# tar zxvf mysql-5.6.12.tar.gz

# cd mysql-5.6.12

# cmake ./

# -DCMAKE_INSTALL_PREFIX=/usr/local/mysql          \    #安装路径

# -DMYSQL_DATADIR=/usr/local/mysql/data            \    #数据文件存放位置

# -DSYSCONFDIR=/etc                                \    #my.cnf路径

# -DWITH_MYISAM_STORAGE_ENGINE=1                   \    #支持MyIASM引擎

# -DWITH_INNOBASE_STORAGE_ENGINE=1                 \    #支持InnoDB引擎

# -DWITH_MEMORY_STORAGE_ENGINE=1                   \    #支持Memory引擎

# -DWITH_READLINE=1                                \    #快捷键功能(我没用过)

# -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock               \    #连接数据库socket路径

# -DMYSQL_TCP_PORT=3306                            \    #端口

# -DENABLED_LOCAL_INFILE=1                         \    #允许从本地导入数据

# -DWITH_PARTITION_STORAGE_ENGINE=1                \    #安装支持数据库分区

# -DEXTRA_CHARSETS=all                             \    #安装所有的字符集

# -DDEFAULT_CHARSET=utf8                           \    #默认字符

# -DDEFAULT_COLLATION=utf8_general_ci

# make

# make install

编译脚本执行

time cmake .

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql          \

-DMYSQL_DATADIR=/data            \

-DSYSCONFDIR=/etc                                \

-DWITH_MYISAM_STORAGE_ENGINE=1                   \

-DWITH_INNOBASE_STORAGE_ENGINE=1                 \

-DWITH_MEMORY_STORAGE_ENGINE=1                   \

-DWITH_READLINE=1                                \

-DMYSQL_UNIX_ADDR=/data/mysqld.sock               \

-DMYSQL_TCP_PORT=3306                            \

-DENABLED_LOCAL_INFILE=1                         \

-DWITH_PARTITION_STORAGE_ENGINE=1                \

-DEXTRA_CHARSETS=all                             \

-DDEFAULT_CHARSET=utf8                           \

-DDEFAULT_COLLATION=utf8_general_ci

或者简单安装

# Preconfiguration setup

shell> groupadd mysql

shell> useradd -r -g mysql -s /bin/false mysql

# Beginning of source-build specific instructions

shell> tar zxvf mysql-VERSION.tar.gz

shell> cd mysql-VERSION

shell> cmake .

shell> make

shell> make install

3.2 编译完成配置mysql服务

# cd /usr/local/mysql

# chown -R mysql:mysql .

# mkdir -p /data/mysql

# chown mysql.mysql -R /data

# chmod 775 -R /data

(#这里最后是有个.的大家要注意# 为了安全安装完成后请修改权限给root用户)

# scripts/mysql_install_db --user=mysql    (先进行这一步再做如下权限的修改)

scripts/mysql_install_db --user=mysql --datadir=/data/mysql

和配置my.cnf 保持一致

# chown -R root:mysql .     (将权限设置给root用户,并设置给mysql组, 取消其他用户的读写执行权限,仅留给mysql "rx"读执行权限,其他用户无任何权限)

# chown -R mysql:mysql ./data    (数据库存放目录设置成mysql用户mysql组)

# chmod -R ug+rwx  .     (赋予读写执行权限,其他用户权限一律删除仅给mysql用户权限)

下面的命令是将mysql的配置文件拷贝到/etc

# cp support-files/my-default.cnf  /etc/my.cnf

(5.6之前的版本用如下命令)

# cp support-files/my-medium.cnf /etc/my.cnf  (5.6之前的版本是此操作,读者也可在此时自己进入support-files文件夹下面,看是配置文件的真正名称,那个存在,就拷贝那个。。)

修改my.cnf配置

# vi /etc/my.cnf

#[mysqld] 下面添加:

user=mysql

datadir=/data/mysql

default-storage-engine=MyISAM

备注修改 datadir=/data/mysql 需要在 scripts/mysql_install_db --user=mysql 添加 --datadir=/data/mysql

3.3 启动mysql

# bin/mysqld_safe --user=mysql &        或者直接进入bin文件夹下面

# cd bin

#./mysqld                              \ 这里说明,mysqld_safe或者mysqld都可以启动的

启动mysql,看是否成功

# ps –ef|grep mysql

root     25152 25119  0 14:43 pts/2    00:00:00 tail -f /data/mysql/testdb1.err

root     25729     1  0 14:50 pts/1    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/testdb1.pid

mysql    25878 25729  0 14:50 pts/1    00:00:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/testdb1.err --pid-file=/data/mysql/testdb1.pid

root     26040 25932  0 15:28 pts/0    00:00:00 grep mysql

# netstat -tnl|grep 3306

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN   

上面是一种启动mysql的方法,还有一种简单的方便,如下:

将mysql的启动服务添加到系统服务中

# cp support-files/mysql.server  /etc/init.d/mysql

现在可以使用下面的命令启动mysql

# service mysql start

停止mysql服务

# service mysql stop

重启mysql服务

# service mysql restart

Shutting down MySQL..[  OK  ]

Starting MySQL..[  OK  ]

关闭MySQL自动启动

[root@testdb1 init.d]# chkconfig --list |grep mysql

mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off

[root@testdb1 init.d]#

[root@testdb1 init.d]#

[root@testdb1 init.d]#

[root@testdb1 init.d]# chkconfig mysql off

[root@testdb1 init.d]# chkconfig --list |grep mysql

mysql           0:off   1:off   2:off   3:off   4:off   5:off   6:off

备注:

命令行方式启动

[root@testdb1 ~]# cd /usr/local/mysql/bin

[root@testdb1 bin]# ./mysqld_safe &

[1] 3981

[root@testdb1 bin]# 160114 09:25:08 mysqld_safe Logging to '/data/mysql/testdb1.err'.

160114 09:25:08 mysqld_safe Starting mysqld daemon with databases from /data/mysql

关闭数据库

[root@testdb1 bin]# mysqladmin -uroot shutdown

160114 09:27:38 mysqld_safe mysqld from pid file /data/mysql/testdb1.pid ended

[1]+  Done                    ./mysqld_safe

3.4 修改root用户密码

# chkconfig --add mysql

修改默认root账户密码,默认密码为空

修改密码 cd 切换到mysql所在目录

# cd /usr/local/mysql

# ./bin/mysqladmin -u root password

New password:

Confirm new password:

回车在接下来的提示中设置新密码即可。。

最后

# service mysql restart;              (重启mysql服务器)

# cd /usr/local/mysql/bin/        (进入mysql basedir下面的bin中)

# ./mysql                                (开启客户端)

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

Your MySQL connection id is 2

Server version: 5.6.28 Source distribution

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

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

登录mysql测试

mysql> use mysql

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select host,user from mysql.user;

+-----------+------+

| host      | user |

+-----------+------+

| 127.0.0.1 | root |

| ::1       | root |

| localhost |      |

| localhost | root |

| testdb1   |      |

| testdb1   | root |

+-----------+------+

6 rows in set (0.00 sec)

4. 常见问题

问题1  

Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/Server03.mylinux.com.pid).  

解决:

修改/etc/my.cnf 中datadir,指向正确的mysql数据库文件目录 

问题2  

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)  

解决:

新建一个链接或在mysql中加入-S参数,直接指出mysql.sock位置。'''  

ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock  

/usr/local/mysql/bin/mysql -u root -S /usr/local/mysql/data/mysql.sock 

问题3

解决:-bash:mysql:command not found 

因为mysql命令的路径在/usr/local/mysql/bin下面,所以你直接使用mysql命令时, 

系统在/usr/bin下面查此命令,所以找不到了  

解决办法是:

ln -s /usr/local/mysql/bin/mysql /usr/bin 做个链接即可 

5. 本地Yum 源配置

5.1 yum 简介

yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器。起初是由yellow dog 这一发行版的开发者Terra Soft 研发,用python 写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke 开发团队进行改进,遂有此名。yum 的宗旨是自动化地升级,安装/移除rpm 包,收集rpm 包的相关信息,检查依赖性并自动提示用户解决。yum 的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http 或ftp 站点,也可以是本地软件池,但必须包含rpm 的header,header 包括了rpm 包的各种信息,包括描述,功能,提供的文件,依赖性等。正是收集了这些header 并加以分析,才能自动化地完成余下的任务。

yum 的理念是使用一个中心仓库(repository)管理一部分甚至一个distribution 的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了Linux 用户一直头痛的dependencies 的问题。这一点上,yum 和apt 相同。apt 原为debian 的deb 类型软件管理所使用,但是现在也能用到RedHat 门下的rpm 了。

yum 主要功能是更方便的添加/删除/更新RPM 包,自动解决包的倚赖性问题,便于管理大量系统的更新问题。

yum 可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm 包时遇到的依赖性问题,保持与RPM 数据库的一致性。

5.2 yum源配置和光盘挂载

cd /etc/yum.repos.d

挂载本地光盘

mount -o loop /home/OL5.8x86_64dvd.iso /mnt

虚拟机挂着 ISO光盘

mount /dev/cdrom /mnt

修改yum源文件

[root@cafhxdb1 yum.repos.d]# cat my.repo

[c6-media]

name=CentOS-$releasever - Media

baseurl=file:///mnt/cdrom/Server

gpgcheck=0

enabled=1

6. RPM安装MySQL数据库

1. 下载MySQL 5.6
下载页面:http://dev.mysql.com/downloads/mysql/
此处选择“Red Hat Enterprise Linux 6 / Oracle Linux 6 (x86, 32-bit), RPM Bundle”下载,下载至/root/Downloads/目录下,下载文件名为“MySQL-5.6.15-1.el6.i686.rpm-bundle.tar”
2. 解压tar包
cd /root/Downloads/
tar -xvf MySQL-5.6.15-1.el6.i686.rpm-bundle.tar
3. 以RPM方式安装MySQL
在RHEL系统中,必须先安装“MySQL-shared-compat-5.6.15-1.el6.i686.rpm”这个兼容包,然后才能安装server和client,否则安装时会出错。
yum install MySQL-shared-compat-5.6.15-1.el6.i686.rpm  # RHEL兼容包
yum install MySQL-server-5.6.15-1.el6.i686.rpm              # MySQL服务端程序
yum install MySQL-client-5.6.15-1.el6.i686.rpm                # MySQL客户端程序
yum install MySQL-devel-5.6.15-1.el6.i686.rpm                # MySQL的库和头文件
yum install MySQL-shared-5.6.15-1.el6.i686.rpm              # MySQL的共享库
4. 配置MySQL登录密码
cat /root/.mysql_secret  # 获取MySQL安装时生成的随机密码
service mysql start      # 启动MySQL服务
mysql -uroot -p          # 进入MySQL,使用之前获取的随机密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');  # 在MySQL命令行中设置root账户的密码为password
quit  # 退出MySQL命令行
service mysql restart  # 重新启动MySQL服务