cmake编译安装mysql 5.6.12

cmake安装mysql 5.6.12

从mysql 5.5 开始就要用cmake编译安装

下载mysql
下载地址:http://pan.baidu.com/s/1o68xxqE

一、安装mysql5.6.12

1、创建用户、组和目录

groupadd mysql

useradd -g mysql mysql

创建数据仓库目录(不创建的话默认就是这个目录即$PREFIX_DIR/data)

mkdir /server/mysql/data -p

2、安装

cmake . \
-DCMAKE_INSTALL_PREFIX=/server/mysql \
-DMYSQL_DATADIR=/server/mysql/data \
-DMYSQL_UNIX_ADDR=/server/mysql/run/mysql.sock \
-DDEFAULT_COLLATION=utf8_general_ci \
-DDEFAULT_CHARSET=utf8 \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE= \
-DWITH_INNOBASE_STORAGE_ENGINE= \
-DWITH_MEMORY_STORAGE_ENGINE= \
-DMYSQL_USER=mysql make && make install

部分参数说明详见http://blog.samxy.com/archives/287.html
下面摘一点:
-DCMAKE_INSTALL_PREFIX= 数据库程序安装路径;
-DMYSQL_DATADIR= 数据库文件存放路径
-DMYSQL_UNIX_ADDR= 默认位置是/tmp/mysql.sock
-DDEFAULT_CHARSET= 默认数据库编码
-DDEFAULT_COLLATION= 默认数据库整理编码
-DWITH_EXTRA_CHARSETS= 扩展支持编码(all | utf8,gbk,gb2312 | none)
-DWITH_MYISAM_STORAGE_ENGINE= MYISAM引擎支持(1|0)
-DWITH_INNOBASE_STORAGE_ENGINE= innoDB引擎支持(1|0)
-DWITH_MEMORY_STORAGE_ENGINE= MEMORY引擎支持(1|0)

二、配置mysql

1、修改配置文件my.cnf

chmod  /tmp -R
mkdir -p /server/mysql/etc/

mysql 5.6

cp support-files/my-default.cnf /server/mysql/etc/my.cnf

mysql 5.5

cp support-files/my-large.cnf /server/mysql/etc/my.cnf

修改my.cnf参数,没有则加入如下:

vi /server/mysql/etc/my.cnf
basedir = /server/mysql(不配置的话默认为$PREFIX_DIR)
datadir = /server/mysql/data(不配置的话默认为$PREFIX_DIR/data)
explicit_defaults_for_timestamp=true (不配置就报错5.6.12)
log-error = /server/mysql/mysql_error.log(不配置的话默认为$PREFIX_DIR/data/$hostname.err)
pid-file = /server/mysql/run/mysql.pid(不配置的话默认为$PREFIX_DIR/data/$hostname.pid)
socket = /server/mysql/run/mysql.sock
user = mysql
tmpdir = /tmp(不配置的话默认为/tmp)

2、初始化安装:

cd /server/mysql/

chmod +x scripts/mysql_install_db

这里还是在安装源目录下

scripts/mysql_install_db --defaults-file=/server/mysql/etc/my.cnf \
--basedir=/server/mysql \
--datadir=/server/mysql/data \
--user=mysql \
--pid-file=/server/mysql/run/mysql.pid \
--port= \
--socket=/server/mysql/run/mysql.sock \
--skip-external-locking \
--explicit_defaults_for_timestamp=true \
--force

成功后会输出一大堆信息(大概十几行)

(--user一定要加,其他可不加,默认会是$PREFIX_DIR和$PREFIX_DIR/data,因为--help看到说不加--user会以当前系统登录用户启动mysql)

可能需要先创建pid文件的目录

/server/mysql/bin/mysqladmin --version  //测试下

先启动mysql:

chown -R mysql:mysql /server/mysql/

启动mysql

/server/mysql/bin/mysqld_safe --defaults-file=/server/mysql/etc/my.cnf --user=mysql &

再修改root密码:

/server/mysql/bin/mysqladmin -u root password 'yes'

测试是否能进入:

/server/mysql/bin/mysql -u root -p

可以进入,好的,杀掉进程,接着做下面的。

将mysql加入开机启动:

两个方法只需要执行一个

方法法一:

执行:
如果已有/etc/init.d/mysqld也要复制下,因为自带的mysqld里面控制服务的方式与源代码中带的mysqld不同,而且还要重新定义下面提到要修改的字段

cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
echo "/etc/init.d/mysqld start" >> /etc/rc.local

方法二:

执行:

chkconfig--add mysqld
chkconfig--level mysqld on

3、启动mysql

/etc/init.d/mysqld start
上一篇:【Docker】Windows下docker环境搭建及解决使用非官方终端时的连接问题


下一篇:strace常用参数详解