环境描述:
系统版本:CENTOS 5.10 X86_64,采用最小化安装方法;
MYSQL版本:5.5.39.tar.gz;
前期准备,安装依赖包:
[root@node111 ~]# yum install -y gcc gcc-c++ autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* openssl* make bison bison-devel
1、安装cmake
从mysql5.5开始,编译工具开始使用cmake了,因此需要先安装cmake,cmake已经存在与yum源中,因此直接yum安装cmake
[root@node111 ~]# yum install -y cmake
2、创建数据存放目录
[root@node111 ~]# mkdir -p /data/mysql
3、创建mysql用户及组
[root@node111 ~]# groupadd -r mysql
[root@node111 ~]# useradd -g mysql -r -s /sbin/nologin -M mysql
4、安装mysql
[root@node111 ~]# cd src/
[root@node111 src]# ls
mysql-5.5.39.tar.gz
[root@node111 src]# tar zxvf mysql-5.5.39.tar.gz
[root@node111 src]# cd mysql-5.5.39
[root@node111 mysql-5.5.39]# cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql -DSYSCONFDIR=/data/mysql/etc -DMYSQL_DATADIR=/data/mysql -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DMYSQL_USER=mysql -DEXTRA_CHARSETS=all -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
[root@node111 mysql-5.5.39]# make
[root@node111 mysql-5.5.39]# make install
5、初始化mysql
[root@node111 mysql-5.5.39]# cd /opt/mysql/
[root@node111 mysql]# chown -R mysql.mysql
[root@node111 mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/opt/mysql/ --datadir=/data/mysql/
WARNING: The host 'node111' could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !
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:
/opt/mysql//bin/mysqladmin -u root password 'new-password'
/opt/mysql//bin/mysqladmin -u root -h node111 password 'new-password'
Alternatively you can run:
/opt/mysql//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 /opt/mysql/ ; /opt/mysql//bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /opt/mysql//mysql-test ; perl mysql-test-run.pl
Please report any problems at http://bugs.mysql.com/
[root@node111 mysql]# chown -R root .
[root@node111 mysql]# chown -R mysql.mysql /data/mysql
6、为mysql提供配置文件
[root@node111 mysql-5.5.39]# cp support-files/my-huge.cnf /etc/my.cnf
[root@node111 mysql-5.5.39]# vim /et/my.cnf
#在[mysqld]下增加:
character-set-server = utf8
collation-server = utf8_unicode_ci
datadir = /data/mysql
innodb_buffer_pool_size = 384M
innodb_file_per_table=1
7、为mysql提供启动脚本
[root@node111 mysql-5.5.39]# cp support-files/mysql.server /etc/init.d/mysqld
[root@node111 mysql-5.5.39]# chmod +x /etc/init.d/mysqld
[root@node111 mysql-5.5.39]# chkconfig mysqld --add
[root@node111 mysql-5.5.39]# chkconfig mysqld on
8、修改PATH路径
[root@node111 mysql]# vim vim /etc/profile.d/mysql.sh
export PATH=$PATH:/opt/mysql/bin
[root@node111 mysql]# source /etc/profile.d/mysql.sh
9、输出mysql的man手册至man命令的查找路径
[root@node7 ~]# vim /etc/man.config
MANPATH /opt/mysql/man
输出mysql的头文件至系统头文件路径/usr/include
[root@node7 ~]# ln -sv /opt/mysql/include /usr/include/mysql
"/usr/include/mysql" -> "/usr/local/mysql/include"
10、输出mysql的库文件给系统库查找路径
[root@node7 ~]# echo '/opt/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
[root@node7 ~]# ldconfig
备注:
若cmake时使用了-DWITH-SSL参数,则会在make时出现包含vio.c的错误,这是mysql的bug,解决方法为:
[root@node111 mysql-5.5.39]# wget -c "http://bugs.mysql.com/file.php?id=19941&bug_id=68999" -O mysql-openssl.patch
[root@node111 mysql-5.5.39]# patch -p1 < mysql-openssl.patch