Linux环境下源码编译安装MySQL5.5

Msyql升级到5.5版本之后,源码编译配置工具换成了CMake,编译方式及加载的参数较之以前都有不小的变化,本节以实战形式详尽描述RHEL5环境下,源码编译安装MySQL5.5的各个步骤。 

  工欲善其事,必先利其器。如果操作系统没有cmake命令,则需要首先编译安装cmake,这个工具安装比较简单,可以先到下列网址下载:http://www.cmake.org/cmake/resources/software.html,解压缩后make安装即可。

  MySQL的源码包可以到其官网下载:http://dev.mysql.com/downloads/mysql/5.5.html,目前最新版本为5.5.12GA。

  安装的详细操作步骤请看官们注意了,往下瞅~~

    安装依赖包:yum install –y openssl openssl-devel ncurses ncurses-devel  cmake

  首先创建专用帐户:

    

  • shell> groupadd mysql

    shell> useradd -r -g mysql mysql

  解压缩MySQL安装包:

  • [root@rhel5u3 software]# tar xvfz mysql-5.5.12.tar.gz

    [root@rhel5u3 software]# cd mysql-5.5.12

  接下来需要执行cmake命令进行配置。有过源码编译安装MySQL经验的朋友都知道,5.5之前版本编译时的参数众多,某些参数对性能也有相当影响,比如静态编译的选项等等。

  MySQL5.5版本中,编译的选项同样众多,DBA可以通过# cmake . -LH 查看支持的参数,或者浏览下列页面:http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html,查看编译时可指定参数的详细描述。

  截略一些常用参数如下:

  • CMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql
  • DEFAULT_CHARSET:指定服务器默认字符集,默认latin1
  • DEFAULT_COLLATION:指定服务器默认的校对规则,默认latin1_general_ci
  • ENABLED_LOCAL_INFILE:指定是否允许本地执行LOAD DATA INFILE,默认OFF
  • WITH_COMMENT:指定编译备注信息
  • WITH_xxx_STORAGE_ENGINE:指定静态编译到mysql的存储引擎,MyISAM,MERGE,MEMBER以及CSV四种引擎默认即被编译至服务器,不需要特别指定。
  • WITHOUT_xxx_STORAGE_ENGINE:指定不编译的存储引擎
  • SYSCONFDIR:初始化参数文件目录
  • MYSQL_DATADIR:数据文件目录
  • MYSQL_TCP_PORT:服务端口号,默认3306
  • MYSQL_UNIX_ADDR:socket文件路径,默认/tmp/mysql.sock

  实际执行时指定的参数如下:

  • [root@rhel5u3 mysql-5.5.12]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55 \

    >  -DDEFAULT_CHARSET=gbk \

    >  -DDEFAULT_COLLATION=gbk_chinese_ci \

    >  -DENABLED_LOCAL_INFILE=ON \

    >  -DWITH_INNOBASE_STORAGE_ENGINE=1 \

    >  -DWITH_FEDERATED_STORAGE_ENGINE=1 \

    >  -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

    >  -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \

    >  -DWITHOUT_PARTITION_STORAGE_ENGINE=0 \

    >  -DWITH_COMMENT="jss edition" \

    >  -DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock \

    >  -DSYSCONFDIR=/data/mysqldata/3306

    ...........

    ...........

    -- The C compiler identification is GNU

    -- The CXX compiler identification is GNU

    -- Check for working C compiler: /usr/bin/gcc

    -- Check for working C compiler: /usr/bin/gcc -- works
/*
编译选项参考
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql55 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=0 \
-DWITH_COMMENT="lixigang edition" \
-DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock \
-DSYSCONFDIR=/data/mysqldata/3306 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1

*/
注:将上面的编译选项复制进命令窗口的时候,一定要带前面的中横杆,否则会报最后一个参数不存在,关于分区这个选项可以参考另外关于分区的那篇博客

 多次运行cmake有个文件我们需要删除,删除当前目录下CMakeCache.txt文件并重新编译

而后执行make命令进行编译操作:

  • [root@rhel5u3 mysql-5.5.12]# make

    Scanning dependencies of target INFO_BIN

    [  0%] Built target INFO_BIN

    Scanning dependencies of target INFO_SRC

    ...........

    ...........

  执行make install命令安装程序到指定的路径:

  • [root@rhel5u3 mysql-5.5.12]# make install

    [  0%] Built target INFO_BIN

    [  0%] Built target INFO_SRC

    [  0%] Built target abi_check

    ...........

    ...........

  如果前面操作没有碰到错误的话,编译及安装至此告以段落,接下来要对MySQL做些配置性工作,比如授予目录权限,创建数据等等。

  首先修改安装目录的所有者,执行命令如下:

  • [root@rhel5u3 mysql-5.5.12]# cd /usr/local/mysql55

    [root@rhel5u3 mysql55]# chown -R mysql:mysql ./

  为将要创建的数据库做准备性工作,创建相关目录,并修改所有者:

  • [root@rhel5u3 mysql55]# mkdir -p /data/mysqldata/3306

    [root@rhel5u3 mysql55]# cd /data/mysqldata/3306

    [root@rhel5u3 3306]# mkdir data binlog tmp innodb_ts innodb_log

    [root@rhel5u3 3306]# chown -R mysql:mysql ./

    [root@rhel5u3 3306]# cd /usr/local/mysql55

  执行mysql_install_db命令创建数据库:

  • [root@rhel5u3 mysql55]# scripts/mysql_install_db --user=mysql --datadir=/data/mysqldata/3306/data/

    Installing MySQL system tables...

    OK

    Filling help tables...

    OK

    To start mysqld at boot time you have to copy

    support-files/mysql.server to the right place for your system

    PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

    To do so, start the server, then issue the following commands:

    ./bin/mysqladmin -u root password ¨new-password¨

    ./bin/mysqladmin -u root -h rhel5u3 password ¨new-password¨

    Alternatively you can run:

    ./bin/mysql_secure_installation

    which will also give you the option of removing the test

    databases and anonymous user created by default.  This is

    strongly recommended for production servers.

    See the manual for more instructions.

    You can start the MySQL daemon with:

    cd . ; ./bin/mysqld_safe &

    You can test the MySQL daemon with mysql-test-run.pl

    cd ./mysql-test ; perl mysql-test-run.pl

    Please report any problems with the ./bin/mysqlbug script!

复制初始化参数文件到适当的路径下,前面编译配置时已经指定了初始化参数文件默认路径为/data/mysqldata/3306,因此这里要将参数文件复制至该路径下,注意不要复制错了地方:

  • [root@rhel5u3 mysql55]# cp support-files/my-medium.cnf /data/mysqldata/3306/my.cnf

vi编译my.cnf文件,添加下列的配置:

  • datadir  = /data/mysqldata/3306/data

    tmpdir   = /data/mysqldata/3306/tmp

如果有必要的话,将innodb相关的参数注释去掉,并修改文件路径为正确的路径,然后就可以启动mysql了:

  • [root@rhel5u3 mysql55]# /usr/local/mysql55/bin/mysqld_safe &
  • 注:在5.6的安装过程中,要检查下/etc下有没有my.cnf,如果有应该mv掉,否则就按照这个文件来启动了

在启动时不需要附加--defaults-file参数指定参数文件的具体路径了。

通过mysqladmin命令修改管理员口令:

  • [root@rhel5u3 mysql55]# /usr/local/mysql55/bin/mysqladmin -uroot password ¨123456¨ -S /data/mysqldata/3306/mysql.sock

登录数据库:

  • [root@rhel5u3 mysql55]# /usr/local/mysql55/bin/mysql -uroot -p¨123456¨

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

    Your MySQL connection id is 2

    Server version: 5.5.12-log Source distribution

    Copyright (c) 2000, 2010, 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> show databases;

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

    | Database           |

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

    | information_schema |

    | mysql              |

    | performance_schema |

    | test               |

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

    4 rows in set (0.00 sec)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值