linux下编译安装mysql
From: https://blog.kuoruan.com/80.html
|
# rpm -qa | grep mysql
mysql-libs-5.1.73-3.el6_5.x86_64
# yum remove -y mysql-libs-5.1.73-3.el6_5.x86_64
|
安装编译环境
安装编译环境并下载MySQL源代码,这里用到了souhu的镜像。
|
1
2
3
4
|
# yum -y install make wget gcc-c++ cmake bison-devel ncurses-devel
# mkdir ~/mysql && cd ~/mysql
# wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.10.tar.gz
|
编译安装
|
1
|
# tar -zxf mysql-5.7.10.tar.gz && cd mysql-5.7.10
|
配置参数,预编译
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
|
所有可选参数可以在这里看到:MySQL Source-Configuration Options
需要注意的是,在MySQL 5.7以上版本,Boost库是必须要配置的,如果不配制,会提示错误:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
CMake Error at cmake/boost.cmake:76 (MESSAGE):
You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>
This CMake script will look for boost in <directory>. If it is not there,
it will download and unpack it (in that directory) for you.
If you are inside a firewall, you may need to use an http proxy:
export http_proxy=http://example.com:80
Call Stack (most recent call first):
cmake/boost.cmake:228 (COULD_NOT_FIND_BOOST)
CMakeLists.txt:435 (INCLUDE)
-- Configuring incomplete, errors occurred!
See also "/root/mysql/mysql-5.7.10/CMakeFiles/CMakeOutput.log".
|
编译并安装:
|
1
2
|
# make -j `grep processor /proc/cpuinfo | wc -l` #编译很消耗系统资源,小内存可能编译通不过
# make install
|
配置MySQL
设置mysql用户组:
|
1
2
3
4
|
# groupadd mysql
# useradd -g mysql mysql
# chown -R mysql:mysql /usr/local/mysql
|
设置开机启动
|
1
2
3
4
|
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chmod +x /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on
|
初始化数据库
|
1
|
# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
|
- 之前版本mysql_install_db是在
$mysql_basedir/script下,5.7放在了$mysql_basedir/bin目录下,并会在将来被移除,转而使用mysqld替代 -–initialize会生成一个随机密码(保存在~/.mysql_secret),而–initialize-insecure不会生成密码- -–datadir目标目录下不能有数据文件
- 其他参数:mysql_install_db — Initialize MySQL Data Directory
设置my.cnf文件
|
1
|
# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
|
请自行修改/etc/my.cnf文件,不修改的话以默认设置运行。
MySQL所有可配置项可以参考这里:Server System Variables
配置环境变量
|
1
2
3
4
5
6
7
8
|
# vi /etc/profile
-- 编辑/etc/profile文件在最后添加如下两行 --
PATH=/usr/local/mysql/bin:$PATH
export PATH
# source /etc/profile
|
启动mysql
|
1
|
service mysqld start
|
浙公网安备 33010602011771号