编译安装MySQL-5.5
cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。
1,安装开发组件
[root@[node108] ~]# yum groupinstall"Development Tools" "Server Platform Development" –y
2,安装cmake
[root@[node108] ~]#yum –y install cmake
3,下载mariadb源码
[root@[node108] ~]# mget mariadb-5.5.44.tar.gz
4,创建用户名和组
[root@[node108] ~]# groupadd -r -g 306mysql
[root@[node108] ~]# useradd -r -g 306 -u306 mysql
[root@[node108] ~]# id mysql
uid=306(mysql) gid=306(mysql) groups=306(mysql)
5,解开源码包
[root@[node108] ~]# tar xf mariadb-5.5.44.tar.gz
[root@[node108] ~]# cd mariadb-5.5.44
6,编译安装
[root@[node108]# mariadb-5.5.44]#cmake .-DCMAKE_INSTALL_PREFIX=/usr/local/Nmariadb-5.5.44 -DMYSQL_DATADIR=/mydata/data-DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1-DWITH_READLINE=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 . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb-5.5.44\ 安装路径
* -DMYSQL_DATADIR=/mydata/data \ 数据目录
* -DSYSCONFDIR=/etc \ 配置文件
* -DWITH_INNOBASE_STORAGE_ENGINE=1 \ 安装启用INNOBASE存储引擎
* -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ 安装启用ARCHIVE
* -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ 安装启用BLACKHOLE
* -DWITH_READLINE=1 \ 支持READLINE
* -DWITH_SSL=system \ 支持SSL
* -DWITH_ZLIB=system \ 支持ZLIB
* -DWITH_LIBWRAP=0 \ 不使用LIBWRAP 控制
* -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ mysql.cock文件位置
* -DDEFAULT_CHARSET=utf8 \ 默认字符集
*************************************************************************
[root@[node108]#make
[root@[node108]#make install
编译安装后切换到编译后的目录进行安装
[root@[node108] local]# cd Nmariadb-5.5.44/
[root@[node108] Nmariadb-5.5.44]# ll
total 220
drwxr-xr-x 2 root root 4096 Jun 19 23:18bin
-rw-r--r-- 1 root root 17987 Jun 10 04:25COPYING
-rw-r--r-- 1 root root 26545 Jun 10 04:25COPYING.LESSER
drwxr-xr-x 3 root root 4096 Jun 19 23:18data
-rw-r--r-- 1 root root 8245 Jun 10 04:25EXCEPTIONS-CLIENT
drwxr-xr-x 3 root root 4096 Jun 19 23:17include
-rw-r--r-- 1 root root 8694 Jun 10 04:25INSTALL-BINARY
drwxr-xr-x 3 root root 4096 Jun 19 23:18lib
drwxr-xr-x 4 root root 4096 Jun 19 23:19man
drwxr-xr-x 11 root root 4096 Jun 19 23:19 mysql-test
-rw-r--r-- 1 root root 108813 Jun 10 04:25 README
drwxr-xr-x 2 root root 4096 Jun 19 23:18scripts
drwxr-xr-x 27 root root 4096 Jun 19 23:18 share
drwxr-xr-x 4 root root 4096 Jun 19 23:19sql-bench
drwxr-xr-x 3 root root 4096 Jun 19 23:18support-files
[root@[node108] Nmariadb-5.5.44]#
[root@[node108] Nmariadb-5.5.44]# chown -Rroot.mysql ./*
[root@[node108] Nmariadb-5.5.44]# cd ..
[root@[node108] local]# ln -svNmariadb-5.5.44 mysql
`mysql/Nmariadb-5.5.44' ->`Nmariadb-5.5.44'
[root@[node108] local]# cd mysql/
将mysql安装至lvm,首先需要创建一个lvm
[root@[node108]#fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (7859-15665, default 7859):
Using default value 7859
Last cylinder, +cylinders or +size{K,M,G}(7859-15665, default 15665): +20G
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e(Linux LVM)
[root@[node108]#partx–a /dev/sdb
[root@[node108]#pvcreate/dev/sdb3
[root@[node108]#vgcreatemyvg /dev/sdb3
[root@[node108]#lvcreate–L 10G –n mydata myvg
[root@[node108]#lvs
[root@[node108]#Mke2fs–t ext4 /dev/myvg/mydata
[root@[node108]#vim/etc/fstab
/dev/myvg/mydata /mydata ext4 defaults 0 0
[root@[node108]#mkdir/mydata/data
[root@[node108]#mount–a
[root@[node108]#chownmysql.mysql /mydata/data
7,开始初始化
[root@[node108]#cd/usr/local/mysql
[root@[node108] mysql]#scripts/mysql_install_db --user=mysql --datadir=/mydata/data
8,创建编辑配置文件!
[root@localhostmysql]# mkdir /etc/mysql
[root@localhostmysql]# cp support-files/my-large.cnf /etc/mysql/my.cnf
[root@localhostmysql]# vim /etc/mysql/my.cnf
在[mysqld]里面添加如下
datadir =/mydata/data 安装目录指定
innodb_file_per_table= NO
skip_name_resolve =NO 跳过名称解析的
9,添加mysql service服务
[root@localhostmysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@localhostmysql]# chmod +x /etc/rc.d/init.d/mysqld
[root@localhost mysql]#chkconfig --add mysqld
[root@localhostmysql]# chkconfig mysqld on
[root@localhostmysql]# service mysqld start
StartingMySQL.... [ OK ]
[root@localhostmysql]# ss -tlp |grep :mysql
LISTEN 0 50 *:mysql *:* users:(("mysqld",44014,14))
给root用户添加密码,并且删除用户
[root@localhostmysql]# /usr/local/mysql/bin/mysql_secure_installation
[root@localhostmysql]# /usr/local/mysql/bin/mysql -uroot -p
Enter password:
Welcome to theMariaDB monitor. Commands end with ; or\g.
Your MariaDBconnection id is 11
Server version:5.5.44-MariaDB-log Source distribution
Copyright (c) 2000,2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h'for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema|
| mysql |
| performance_schema|
+--------------------+
3 rows in set (0.03sec)
编译安装MySQL-5.5
使用cmake编译mysql-5.5
cmake指定编译选项的方式不同于make,其实现方式对比如下:
./configure cmake .
./configure --help cmake . -LH or ccmake .
指定安装文件的安装路径时常用的选项:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/data/mysql
-DSYSCONFDIR=/etc
默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,可以使用类似如下编译选项:
-DWITH_INNOBASE_STORAGE_ENGINE=1 编译innodb
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
若要明确指定不编译某存储引擎,可以使用类似如下的选项:
-DWITHOUT__STORAGE_ENGINE=1
比如:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
如若要编译进其它功能,如SSL等,则可使用类似如下选项来实现编译时使用某库或不使用某库:
-DWITH_READLINE=1
-DWITH_SSL=system
-DWITH_ZLIB=system
-DWITH_LIBWRAP=0
其它常用的选项:
-DMYSQL_TCP_PORT=3306
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DENABLED_LOCAL_INFILE=1
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_DEBUG=0
-DENABLE_PROFILING=1
如果想清理此前的编译所生成的文件,则需要使用如下命令:
make clean
rm CMakeCache.txt