曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 6276|回复: 0
打印 上一主题 下一主题

[MySQL] CentOS6.3 源码安装 MySQL 5.6.10

[复制链接]

4917

主题

5879

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34382
跳转到指定楼层
楼主
发表于 2013-3-4 01:25:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
系统:CentOS6.3

要源码编译安装 MySQL,那就要先下载一份源码,下载地址可以到 http://www.mysql.com/downloads/ 这里下载,在官网上下载,需要免费注册一个账号。一般的,就下载社区版本即可:

点击上图的 Download 进到下载页面后,选择下拉框里的“Source code”,然后到最后一项的“Generic Linux (Architecture Independent), Compressed TAR Archive” 这里下载,因为本文也是演示在 Linux 平台上的编译与安装。实际上,可以直接从下面的链接下载,而无需注册账号:
下载到的是当前最新版本 5.6.10:


先将其解压:
tar -xvzf mysql-5.6.10.tar.gz
既然是要编译安装,那么像 gcc 这样的编译器自是必不可少的,当然还有一些软件包。下面将用一个脚本把这些软件包一股脑的全部装上,脚本代码如下:
#!/bin/sh
for packages in patch make cmake gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel vim-minimal nano fonts-chinese gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap;
do yum -y install $packages; done
安装完这些软件包后,下面就一步步来安装 MySQL 。
1. 首先,先建一个专用于 MySQL 的用户组和用户,比如组名和用户名都命名为 mysql 。
# groupadd mysql
# useradd -g mysql mysql

2. 接下来,建立两个目录,一个是 mysql 所要被安装的目录,另一个是以后数据库文件的存放目录。这一步不是必须,如果不指定,那按照默认,mysql 会被装在 /usr/local/mysql 中。
# mkdir -p /opt/mysql-5.6.10
# mkdir -p /opt/mysql-5.6.10/data

3. 注意了,Mysql 自从 5.5 开始它就不用 configure 来配置相关安装想选,而是使用 CMake 了,相信以后也会继续用这个,该工具的出名得益于 KDE 桌面项目。现在可以如下使用配置选项:
cmake . -DCMAKE_INSTALL_PREFIX=/opt/mysql-5.6.10 \
> -DMYSQL_DATADIR=/opt/mysql-5.6.10/data \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \

> -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
> -DWITH_DEBUG=0
如果使用过 configure 脚本进行配置过,那么上面的选项类比的可以了解。关于更多的技术细节可以参考 MySQL 源码包里的 INSTALL-SOURCE 文件,这里面有相当详细的说明,只不过是大通的英文,读起来需要点耐性。还有,MySQL 官方的内部手册的第 5 章也给出了《Autotools to CMake Transition Guide》(即 《Autotools 到 Cmake 的过渡指南》),其地址是:http://dev.mysql.com/doc/internals/en/autotools-to-cmake.html

4. 当上面第 3 步的检查配置完毕后,就可以执行 make 和 make install 来安装了,这个编译安装的过程耗时较长。安装完后,查看安装目录,可以看到:
# ll /opt/mysql-5.6.10/
total 76
drwxr-xr-x.  2 root root  4096 Mar  3 22:18 bin
-rw-r--r--.  1 root root 17987 Jan 23 00:54 COPYING
drwxr-xr-x.  4 root root  4096 Mar  3 22:17 data
drwxr-xr-x.  2 root root  4096 Mar  3 22:17 docs
drwxr-xr-x.  3 root root  4096 Mar  3 22:17 include
-rw-r--r--.  1 root root  7468 Jan 23 00:55 INSTALL-BINARY
drwxr-xr-x.  3 root root  4096 Mar  3 22:17 lib
drwxr-xr-x.  4 root root  4096 Mar  3 22:18 man
drwxr-xr-x. 10 root root  4096 Mar  3 22:18 mysql-test
-rw-r--r--.  1 root root  2552 Jan 23 00:54 README
drwxr-xr-x.  2 root root  4096 Mar  3 22:18 scripts
drwxr-xr-x. 28 root root  4096 Mar  3 22:18 share
drwxr-xr-x.  4 root root  4096 Mar  3 22:18 sql-bench
drwxr-xr-x.  3 root root  4096 Mar  3 22:18 support-files

5. 由于打算让上面所建的 mysql 用户来启动 mysqld 服务器,所以刚才建立的打算用来存放数据的 data 目录也要更改相应的权限,否则将来可能无法正常存储数据:
# chown mysql.mysql data/ -R

6. 把源码包里的 my-default.cnf 文件拷贝到安装目录下,作为自己的一个配置文件:
# cp /home/beyes/Downloads/mysql-5.6.10/support-files/my-default.cnf /opt/mysql-5.6.10/my.cnf

7. 需要稍微编辑一下 my.cnf 以配合实际的使用,比如在 my.cnf 里的 [mysqld] 标签增加下面几行:
basedir = /opt/mysql-5.6.10
datadir = /opt/mysql-5.6.10/data
port = 3306
socket = /tmp/mysql.sock
log_error = /opt/mysql-5.6.10/mysql_error.log
user = mysql


8. 接下来要执行一个重要的脚本 mysql_install_db ,它现在位于 scripts 目录下,用它来初始化数据库,比如可以填充帮助文件和用户文件等:
# ./scripts/mysql_install_db --defaults-file=./my.cnf

9. 尝试启动一下 mysql 服务器,即启动 mysqld 服务守护进程:
# ./bin/mysqld_safe --user=mysql &
[1] 8320
[root@centos mysql-5.6.10]# 130304 00:28:28 mysqld_safe Logging to '/opt/mysql-5.6.10/mysql_error.log'.
130304 00:28:29 mysqld_safe Starting mysqld daemon with databases from /opt/mysql-5.6.10/data
上面是将该进程丢到后台去执行。下面使用 ps 检查一下该进程:
[root@centos mysql-5.6.10]# ps -ef | grep "mysql"
root      8320  2271  0 00:28 pts/0    00:00:00 /bin/sh ./bin/mysqld_safe --user=mysql
mysql     8490  8320  0 00:28 pts/0    00:00:00 /opt/mysql-5.6.10/bin/mysqld --basedir=/opt/mysql-5.6.10 --datadir=/opt/mysql-5.6.10/data --plugin-dir=/opt/mysql-5.6.10/lib/plugin --user=mysql --log-error=/opt/mysql-5.6.10/mysql_error.log --pid-file=/opt/mysql-5.6.10/data/centos.localdomain.pid --socket=/tmp/mysqld.sock --port=3306
root      8533  2271  0 00:34 pts/0    00:00:00 grep mysql
由上红色所标识的进程号 8320 可以看到,mysqld_safe 这个脚本实际启动的是 mysqld ,它是 mysqld 的父进程。它设置了错误日志,并启动 mysqld ,然后对其监视。如果 mysqld 意外终止了,那 mysqld_safe 会重新启动它。我们可以登录验证一下 mysql 服务器是否安装好并启动成功:
$ ./bin/mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.10 Source distribution

Copyright (c) 2000, 2013, 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 命令上加配置文件,比如 mysql --defaults-file=./my.cnf ,在这种情况下,my.cnf 文件里边应该有一个 [client] 区段的配置参数,否则直接在命令行上给出用户名,密码即可连接。还有一种是通过 sock 文件连接,比如 mysql -S /tmp/mysqld.sock ,这也是可以从本地连接到服务器的。


回头再看一下之前建立的 data 目录:
$ ls
auto.cnf                ibdata1      ib_logfile1  performance_schema
centos.localdomain.pid  ib_logfile0  mysql        test
上头的 ibdata1 就是数据文件了。

10. 将 mysql 服务器加入开机启动:
cp support-files/mysql.server /etc/init.d/mysqld
mysql 已经给我们提供好开机启动脚本,直接复制到 /etc/init.d 中并按照一般的命名惯例改名即可。

需要编辑 /etc/init.d/mysqld 中的 basedir 和 datadir 中两项:
basedir=/opt/mysql-5.6.10

datadir=/opt/mysql-5.6.10/data


加入开机启动:
# chkconfig --add mysqld
# chkconfig --level 345 mysqld on

可以启动了:
# service mysqld start

11. 为了方便以后的维护与登录,将 mysql 中的 bin 目录加入到 PATH 中,做法是编辑 /etc/profile 这个文件,找到:
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
这一行,将其改为:
export PATH=/opt/mysql-5.6.10/bin:$PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-4 01:54 , Processed in 0.080723 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表