安装环境
系统 CentOS 5.4 ,安装系统时顺带安装了开发工具包,自动包含gcc等,无需再单独安装,否则安装cmake时需要预先安装这类文件
cmake 3.0.0
MySQL 5.5.38
如果未安装gcc 执行如下步骤
yum -y install gcc-c++
yum install make
-- 或者
yum groupinstall "Development Tools"
-- 或者
yum install gcc gcc-c++ kernel-devel
首先,安装cmake,官网目前最新的是3.0版本,
shell>tar zxvf cmake-3.0.0.tar.gz
shell>cd cmake-3.0.0
shell>./configure (或者执行./bootstrap 也可以)
shell>make
shell>make install
然后开始进行MySQL的安装
shell>tar zxvf mysql-5.5.38.tar.gz
shell>cd mysql-5.5.38
建立一个单独的子目录project,然后在project里编译安装
shell>mkdir project
shell>cd project
shell>cmake .. -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql -DCOMMUNITY_BUILD:BOOL=ON -DENABLED_PROFILING:BOOL=ON -DENABLE_DEBUG_SYNC:BOOL=OFF -DINSTALL_LAYOUT:STRING=STANDALONE -DMYSQL_DATADIR:PATH=/usr/local/mysql/data -DMYSQL_MAINTAINER_MODE:BOOL=OFF -DWITH_EMBEDDED_SERVER:BOOL=ON -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_SSL:STRING=bundled -DWITH_UNIT_TESTS:BOOL=OFF -DWITH_ZLIB:STRING=bundled -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_COMMENT=dancebear -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -LH
如果报错出现以下错误:
cmake .
-- MySQL 5.5.38
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:83 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
此时先删除CMakeCache.txt,然后安装确实的ncurses-devel包
shell>rm CMakeCache.txt
shell>yum install ncurses-devel
如果没有 ncurses-devel资源包,则去http://pkgs.org/centos-5/centos-x86_64/ncurses-devel-5.5-24.20060715.x86_64.rpm.html 下载后安装对应rpm包
然后make -j 开始进行编译(-j是并发编译,适用于多核处理器,但有时候会造成死锁问题,如果遇到,则强行退出后直接用make编译即可)编译中会出现很多warning,可以忽视
编译完成后执行make install
此时mysql就已经安装完成了。
进到mysql目录下创建数据路径(也可以在前面安装源码时指定)
shell>./scripts/mysql_install_db --datadir=/usr/local/mysql/data/
将my.cnf拷到mysql安装目录下,方便保持完整,也可以放在别处
创建mysql用户组和用户,并赋权限
shell>groupadd mysql
shell>useradd -g mysql mysql
shell>chown -R mysql:mysql *
shell>./bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &
启动时有时候会报错误,缺少log文件夹,在对应位置创建文件夹并赋权限即可
此时可以查看log日志中的alert.log文件的输出 用tailf输出
如果启动失败,无法登录mysql,则进入mysql的bin目录下,执行./mysql,测试启动mysql服务,如果报错
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
则应该是/tmp文件夹下不存在对应文件,此时查看进程 ps aux|grep mysql 可以看到自己的socket位置,创建一个socket即可,
shell>ln -s /usr/local/mysql/run/mysql.sock /tmp/mysql.sock
这是创建一个/usr/local/mysql/run/mysql.sock 的链接到tmp文件夹中,重新启动即可