MySQL用的比较多的就是5.5 5.6和5.7,都是依靠cmake编译的,其中5.7需要最新的boost
本文以5.6为例子

安装依赖

sudo apt-get install build-essential libncurses5-dev cmake
打开https://dev.mysql.com/downloads/mysql/5.6.html
第一个下拉框选择版本,第二个选择source code 第三个选择Generic Linux (Architecture Independent)
然后点Download,可以跳过注册,就能得到下载地址
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.36.tar.gz
解压
tar -zxvf mysql-5.6.36.tar.gz

生成make文件

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_USER=mysql -DWITH_DEBUG=0
或者,这种更清晰

1
2
3
4
5
6
7
8
9
10
11
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_USER=mysql -DWITH_DEBUG=0

  • 注意事项:
    重新编译时,需要清除旧的对象文件和缓存信息。
    make clean && rm -f CMakeCache.txt

最后如果没有错误提示的话,就可以下一步了

编译安装

make && make install
添加MySQL组
sudo groupadd mysql
添加MySQL用并禁止登陆,MySQL用户存在就行
sudo useradd -g mysql mysql -s /usr/sbin/nologin
复制MySQL配置文件
sudo cp support-files/my-default.cnf /etc/my.cnf
设置Mysql安装目录的所属用户
sudo chown -R mysql:mysql /usr/local/mysql/

初始化数据库

/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
如果出现两个OK的话,就是成功了
为了直接调用mysql,可以将mysql的bin目录加入PATH环境变量
export PATH=$PATH:/usr/local/mysql/bin

测试运行

mysqld_safe看输出,如果没有错误提示就可以运行了

运行

1
2
3
4
5
cd /usr/local/mysql/
sudo cp support-files/my-default.cnf /etc/my.cnf
sudo cp support-files/mysql.server /etc/init.d/mysqld
sudo chmod 755 /etc/init.d/mysqld
sudo /etc/init.d/mysqld start

创建数据库root密码

mysqladmin -u root password

参考
http://blog.csdn.net/qq_30164225/article/details/54632862
http://www.epooll.com/archives/830/
https://blog.phpha.com/backup/archives/1685.html
http://www.linuxidc.com/Linux/2015-05/117653.htm