Linux环境下源码安装Mysql

系统环境

virtualBox-5.1.26
ubuntu16.04LTS 64位:内存>2G,虚拟机空间>50G

##安装条件
1. cmake

MySQL使用cmake可跨平台生成makefile文件工具

1
sudo apt-get install cmake

2. bison

Linux下C/C++语法分析器.

1
sudo apt-get install bison

3. gcc

Linux下C语言编译工具,mysql源码编译由C和C++编写(Ubuntu默认已装)

4. ncurses

字符终端处理库

1
sudo apt-get install libncurses5-dev

5. Boost 1.59.0
源码编译安装需要Linux环境

##安装步骤
1. 下载源码解压源代码(以mysql5.7.19为例)

下载地址

1
tar -zxvf mysql-boost-5.7.19.tar.gz

2. 创建mysql用户组

1
2
sudo groupadd mysql  //建立mysql用户组
sudo useradd -r -g mysql mysql // 建立mysql用户,并且把用户放到mysql组

3. 文件管理

1
2
chown -R mysql /usr/local/mysql //给予mysql用户和用户组文件操作权限
chgrp -R mysql /usr/local/mysql

详情
4. 进入解压后的目录,配置安装信息

1
2
3
cd mysql-5.7.19
sudo cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_BOOST=boost的路径(绝对路径或相对路径)

详细配置:
用cmake配置mysql预编译参数:
-DCMAKE_INSTALL_PREFIX:安装路径
-DMYSQL_DATADIR:数据存放目录
-DWITH_BOOST:boost源码路径
-DSYSCONFDIR:my.cnf配置文件目录
-DEFAULT_CHARSET:数据库默认字符编码
-DDEFAULT_COLLATION:默认排序规则
-DENABLED_LOCAL_INFILE:允许从本文件导入数据
-DEXTRA_CHARSETS:安装所有字符集

详情
5. 编译并安装源代码

1
sudo make install

6. 初始化数据库

1
sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

此时会生成一个随机临时密码,记下。

1
2
 sudo bin/mysqld  --initialize-insecure --user=mysql 
--basedir=/usr/local/mysql --datadir=usr/local/mysql/data //无密码初始化(可选)

7. 编译配置文件,不用进入bin目录开启MySQL服务

1
sudo vi /etc/my.cnf //或者vim

编写my.cnf配置文件

1
2
3
4
5
6
7
8
[client]
port=3306
socket = /tmp/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket = /tmp/mysql.sock
character-set-server=utf8

8. 修改启动脚本

1
2
3
4
sudo cp  /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
update-rc.d mysqld defaults
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql //设置符号链接

启动mysql服务

1
service mysqld start

查看是否启动服务:

1
netstat -na -t | grep 3306

登录

1
Mysql -uroot -p //而后输入密码

详情
9. 制作ISO文件

1
sudo mkisofs -r -o  mysql-5.7.19.iso /usr/local/mysql