rgar12 发表于 2015-5-25 09:48:28

lamp之编译安装mysql

cmake 跨平台编译器:
      cmake指定编译选项的方式不同于make,其实现方式对比如下:
      ./configure--> cmake .
      ./configure --help --> cmake . -LH

mysql
    0.创建mysql用户和相关组:
      #groupadd -r -g 306 mysql
      #useradd -r -u 306 -g 306 mysql -s /sbin/nologin

    1.创建数据库分区并挂载:
      #fdisk /dev/sdb
            n
            p
            1
            t
            8e
            w
      #partprobe
      #pvcreate /dev/sdb1
      #vgcreate myvg /dev/sdb1
      #lvcreate -n sqld -L 10G myvg
      #mke2fs -j /dev/myvg/sqld
      #mkdir /sqld
      #vim /etc/fstab
            /dev/mapper/myvg/sqld /sqld ext3 defaults 0 0
      #mount -a
      #mkdir /sqld/mdata
      #chown -R mysql:mysqsl /sqld/mdata
      #chmod 755 /sqld/mdata

      mysql数据所在位置:/sqld/mdata

    2.编译安装
      使用cmake工具进行编译。
      0.安装cmake和boost(4.7用)和ncurses-devel
            #tar -xf boost-xxx.tar.bz2
            #cd /usr/local
            #mv boost-xxx boost
            #cd boost
            #./bootstrap
            #./b2 install

            #vim /etc/profile.d/boost.sh
                export BOOST_INCLUDE=/usr/include/boost
                export BOOST_LIB=/usr/local/bin

            boost默认安装在/usr/local/include


            #tar -xf cmake.xxx.tar.gz
            #cd cmake-xxx
            #./bootstrap
            #make && make install
            #vim /etc/profile.d/cmake.sh
                export PATH=$PATH:/usr/local/cmake
                默认cmake是安装在/usr/local/bin/cmake下。

            #yum -y install ncurses-devel

      1.编译安装mysql
            # tar xf mysql-xxx.tar.gz
            # cd mysql-xxx
            # cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysqlXX -DMYSQL_DATADIR=/sqld/mdata -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0-DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
            #cmake . -LH 获取当前cmake的配置信息
            # make
            # make install


            如果想清理此前的编译所生成的文件,则需要使用如下命令:
            #make clean
            #rm CMakeCache.txt

            编译选项详解:
                路径相关:
                  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql mysql安装路径
                  -DMYSQL_DATADIR=/mydata/data 默认数据路径
                  -DSYSCONFDIR=/etc 配置文件路径


                存储引擎:   
                  默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,可以使用类似如下编译选项:
                        -DWITH_INNOBASE_STORAGE_ENGINE=1
                        -DWITH_ARCHIVE_STORAGE_ENGINE=1
                        -DWITH_BLACKHOLE_STORAGE_ENGINE=1
                        -DWITH_FEDERATED_STORAGE_ENGINE=1

                  若要明确指定不编译某存储引擎,可以使用类似如下的选项:
                        -DWITHOUT_<ENGINE>_STORAGE_ENGINE=1

                其他功能:
                  如若要编译进其它功能,如SSL等,则可使用类似如下选项来实现编译时使用某库或不使用某库:
                        -DWITH_SSL=system 启用基于ssl的功能

                        -DWITH_ZLIB=system 启用zlib压缩库

                        -DWITH_LIBWRAP=0 不启用访问控制功能。

                        -DWITH_BOOST=/usr/local/boost 指定boost位置

                其它常用的选项:
                  -DMYSQL_TCP_PORT=3306 默认端口

                  -DMYSQL_UNIX_ADDR=/tmp/mysql.sock 默认套接字路径

                  -DENABLED_LOCAL_INFILE=1 启用loadinfile的方式。

                  -DEXTRA_CHARSETS=all 启用字符集支持。

                  -DDEFAULT_CHARSET=utf8 指定默认字符集

                  -DDEFAULT_COLLATION=utf8_general_ci 指定默认的字符集排序规则。

                  -DWITH_DEBUG=0 不启用debug功能。

                  -DENABLE_PROFILING=1 启用性能分析功能。


    3.创建软链接,方便多版本并存。同时将文件夹的属组改回mysql,避免安全性问题。
      #ln -sv /usr/local/mysqlXX /usr/local/mysql
      #chown -R :mysql /usr/local/mysqlXX/

    4.添加环境变量:
      #vim /etc/profile.d/mysql.sh
            export PATH=$PAHT:/usr/local/mysql/bin

    5.添加man文档路径
      #vim /etc/man_db.conf
            MANDATORY_MANPATH    /usr/local/mysql/man

    6.添加库文件。
      #vim /etc/ld.so.conf.d/mysql.conf
            /usr/local/mysql/lib
      #ldconfig -v 系统重新建立库文件缓存,缓存文件为/etc/ld.so.cache

    7.添加头文件:
      #ln -sv /usr/local/mysql/include /usr/include/mysql


    8.初始化mysql:
      #cd /usr/local/mysql
      #scripts/mysql_install_db \
      >--user=mysql 指定以某个用户的身份运行mysqld。
      >--datadir=/sqld/mdata 指定mysql数据库的位置。默认放在/usr/local/mysql/mdata下。

    9.复制服务脚本:
      #cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

    10.编辑mysql配置文件
      #vim /usr/local/mysql/my.cnf
            thread_concurrency=8 线程并发量,cpu的个数*2
            datadir=/sqld/mdata/ 指定数据位置。

      注意:配置文件/usr/local/mysql/my.cnf的优先级最高,可以选择复制到/etc中替换,也可以删除/etc/my.cnf后直接使用。

    11.启动服务:
      #systemctl start mysqld


页: [1]
查看完整版本: lamp之编译安装mysql