mysql5.1之前编译mysql使用的是make工具,编译步骤如下:
./configure --prefix=
make &&make install
mysql5.5之后编译mysql使用的是cmake工具,编译步骤如下:
cmake .
查看帮助使用: cmake -LH 或ccmake .
1.创建mysql用户及安装依赖软件包.
[[email protected] mnt]# groupadd -r mysql
[[email protected] mnt]# useradd -r -g mysql -s /sbin/nolog mysql
uid=101(mysql) gid=102(mysql) groups=102(mysql)
安装mysql依赖的软件包
yum install gcc gcc-c++ ncurses ncurses-devel openssl openssl-devel zlib bison cmake
到www.mysql.com下载mysql的源码包.
2.编译安装mysql
cd mysql源码目录
cmake . -LH
若产生异常,可以删除CMakeCache.txt,重新执行cmake . -LH
[[email protected] mysql-5.5.38]# cmake . -LH
-- Running cmake version 2.6.4
-- MySQL 5.5.38
-- Packaging as: mysql-5.5.38-Linux-x86_64
-- Library mysqlclient depends on OSLIBS -lpthread;m;rt;dl
Warning: Bison executable not found in PATH
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/mysql-5.5.38
-- Cache values
// Choose the type of build, options are: None(CMAKE_CXX_FLAGS or
CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel
CMAKE_BUILD_TYPE:STRING=RelWithDebInfo
// install prefix
CMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql
// Set to true if this is a community build
COMMUNITY_BUILD:BOOL=ON
// Enable profiling
ENABLED_PROFILING:BOOL=ON
// Enable debug sync (debug builds only)
ENABLE_DEBUG_SYNC:BOOL=ON
// Enable gcov (debug, Linux builds only)
ENABLE_GCOV:BOOL=OFF
// Installation directory layout. Options are: STANDALONE (as in zip or tar.gz installer), RPM, DEB, SVR4
INSTALL_LAYOUT:STRING=STANDALONE
// default MySQL data directory
MYSQL_DATADIR:PATH=/usr/local/mysql/data
// MySQL maintainer-specific development environment
MYSQL_MAINTAINER_MODE:BOOL=OFF
// PATH to MySQL TMP dir. Defaults to the P_tmpdir macro in
TMPDIR:PATH=P_tmpdir
// Link ARCHIVE statically to the server
WITH_ARCHIVE_STORAGE_ENGINE:BOOL=OFF
// Enable address sanitizer
WITH_ASAN:BOOL=OFF
// Link BLACKHOLE statically to the server
WITH_BLACKHOLE_STORAGE_ENGINE:BOOL=OFF
// Use dbug/safemutex
WITH_DEBUG:BOOL=OFF
// Compile MySQL with embedded server
WITH_EMBEDDED_SERVER:BOOL=OFF
// Options are: none, complex, all
WITH_EXTRA_CHARSETS:STRING=all
// Link FEDERATED statically to the server
WITH_FEDERATED_STORAGE_ENGINE:BOOL=OFF
// Link INNOBASE statically to the server
WITH_INNOBASE_STORAGE_ENGINE:BOOL=ON
// Use bundled libedit
WITH_LIBEDIT:BOOL=ON
// Compile with tcp wrappers support
WITH_LIBWRAP:BOOL=OFF
// Link PARTITION statically to the server
WITH_PARTITION_STORAGE_ENGINE:BOOL=ON
// Link PERFSCHEMA statically to the server
WITH_PERFSCHEMA_STORAGE_ENGINE:BOOL=ON
// Generate PIC objects
WITH_PIC:BOOL=OFF
// Use bundled readline
WITH_READLINE:BOOL=OFF
// Options are : no, bundled, yes (prefer os library if present otherwise use bundled), system (use os library)
WITH_SSL:STRING=no
// Compile MySQL with unit tests
WITH_UNIT_TESTS:BOOL=ON
// Valgrind instrumentation
WITH_VALGRIND:BOOL=OFF
// Use bundled zlib
WITH_ZLIB:STRING=bundled
2.1 执行编译.
cmake . -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql \
-DMYSQL_DATADIR:PATH=/data/mysql \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE:BOOL=ON \
-DWITH_ARCHIVE_STORAGE_ENGINE:BOOL=On \
-DWITH_BLACKHOLE_STORAGE_ENGINE:BOOL=On \
-DWITH_EXTRA_CHARSETS:STRING=all \
-DWITH_READLINE:BOOL=On \
-DWITH_SSL:STRING=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP:BOOL=OFF \
-DENABLED_PROFILING:BOOL=ON \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
make && make install
2.2初始化mysql.
chown -R root:mysql /usr/local/mysql
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/data/mysql
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
echo "export PATH=$PATH:/usr/local/mysql/bin;" >/etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
vi /etc/my.cnf,在[mysqld]中增加datadir=/data/mysql 与innodb_file_per_table =on
bin/mysqld_safe --user=mysql &
chkconfig --add mysqld
chkconfig mysqld on
service mysqld status
2.3验证并删除匿名用户.
[[email protected] mysql]# service mysqld status
MySQL running (1581)[确定]
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.38-log Source distribution
Copyright (c) 2000, 2014, 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.01 sec)
mysql> select user,host,password from mysql.user;
+------+-----------+----------+
| user | host | password |
+------+-----------+----------+
| root | localhost | |
| root | mytest2 | |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| | mytest2 | |
+------+-----------+----------+
6 rows in set (0.01 sec)
mysql> drop user ‘‘@‘localhost‘;
Query OK, 0 rows affected (0.00 sec)
mysql> drop user ‘‘@mytest2;
Query OK, 0 rows affected (0.00 sec)
mysql> drop user ‘root‘@‘::1‘;
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host,password from mysql.user;
+------+-----------+----------+
| user | host | password |
+------+-----------+----------+
| root | localhost | |
| root | mytest2 | |
| root | 127.0.0.1 | |
+------+-----------+----------+
3 rows in set (0.00 sec)
至此mysql安装完成.
mysql默认配置文件查找路径顺序如下:
/etc/my.cnf
/etc/mysql/my.cnf
$MYSQL_HOME/my.cnf
~/.my.cnf
启动mysql时指定的--default_extra路径.
异常的处理方法: 错误:‘SSL_OP_NO_COMPRESSION’ 未声明 (在此函数内第一次使用)
1.下载较新的openssl.
2.编译安装
./config shared zlib-dynamic --prefix=/usr/local/openssl
make && make install
3.配置
mv /usr/bin/openssl /usr/bin/openssl_bak
mv /usr/lib/include/openssl /usr/lib/include/openssl_bak
mv /usr/lib/libssl.so /usr/lib/libssl.so_bak
mv /usr/lib64/libssl.so /usr/lib64/libssl.so_bak
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so /usr/lib/libssl.so
ln -s /usr/local/openssl/lib/libssl.so /usr/lib64/libssl.so
echo "/usr/local/openssl/lib" >>/etc/ld.so.conf
ldconfig -v
4.配置完成后,重新编译mysql即可.
原文:http://webseven.blog.51cto.com/4388012/1530791