编译安装主要是方便我们自定义数据,MySQL等目录相关的东西,便于统一管理
- 下载源码包 MySQL官网 选择download 随后选择社区服务器 社区服务器 选择源码包
最终下载地址 https://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.26.tar.gz 下载完成后,传入centos中 2.正式安装 环境准备
mkdir -p /app/pack /app/svc /app/svc/mysql/data #pack 用来放安装包, svc用来放安装好的服务(个人习惯)
删除原来可能有的依赖和数据库残留等
yum remove boost* mysql* mariadb* -y
上传完成并解压
pack]# ls
mysql-5.6.26.tar.gz
tar xf mysql-5.6.26.tar.gz #解压在当前目录即可,耐心等下。
安装依赖环境
yum -y install gcc-c++ cmake ncurses-devel apr apr-devel apr-util apr-util-devel autoconf
开始编译
cd /app/pack/mysql-5.6.26
创建MySQL用户: useradd -M -s /sbin/nologin mysql。
cmake \
-DCMAKE_INSTALL_PREFIX=/app/svc/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_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=/app/svc/mysql/data \
-DMYSQL-USER=mysql
编译结束后 键入 echo $? 参数 若得到0则cmake编译成功。
安装
make -j 4 && make install # -j 4 参数为调用四个线程进行,安装完成后再次 echo $?,并查看刚刚的basedir目录有没有生成相关文件和目录。
####在多核CPU上,适当的进行并行编译还是可以明显提高编译速度的。但并行的任务不宜太多,一般是以CPU的核心数目的两倍为宜。
参数解释
DCMAKE_INSTALL_PREFIX #制定mysql的安装根目录,目录在安装的时候会自动创建,这个值也可以在服务器启动时,用--basedir来设置
DMYSQL_UNIX_ADDR #服务器与本地客户端进行通信的Unix套接字文件,必须是绝对路径,默认位置/tmp/mysql.sock,可以在服务器启动时,用--socket改变
DDEFAULT_CHARSET #mysql默认使用的字符集,不指定将默认使用Latin1西欧字符集
DDEFAULT_COLLATION #默认字符校对
DWITH_EXTRA_CHARSETS #制定mysql拓展字符集,默认值也是all支持所有的字符集
DWITH_MYISAM_STORAGE_ENGINE
DWITH_INNOBASE_STORAGE_ENGINE
DWITH_MEMORY_STORAGE_ENGINE
#静态编译MYISAM,INNOBASE,MEMORY存储引擎到MYSQL服务器,这样MYSQL就支持这三种存储引擎
DWITH_READLINE #支持readline库
DENABLED_LOCAL_INFILE #允许本地倒入数据,启用加载本地数据
DMYSQL_DATADIR #mysql数据库存放路径
DMYSQL-USER #运行mysql的用户
官网解释的编译参数 https://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html
安装完成后,对MySQL进行一系列的配置
chown -R mysql:mysql /app/svc/mysql #修改mysql目录的属组
cp /app/svc/mysql/support-files/my-default.cnf /etc/my.cnf #将mysql自带的配置文件复制到这个位置
修改配置文件
[mysqld]
basedir=/app/svc/mysql #安装基础目录
datadir=/app/svc/mysql/data #数据目录
socket=/tmp/mysql.sock #socket文件
port=3306 #端口
[mysqld_safe]
log-error=/app/svc/mysql/data/mysqld.error #错误日志
pid-file=/app/svc/mysql/data/mysqld.pid #pid文件
/app/svc/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/app/svc/mysql/ --datadir=/app/svc/mysql/data/ --user=mysql #初始化mysql数据库,echo $?
cp /app/svc/mysql/support-files/mysql.server /etc/init.d/mysqld #启动文件复制到系统下
修改里面两项参数
basedir=/app/svc/mysql
datadir=/app/svc/mysql/data
service mysqld start #启动数据库
chkconfig mysqld on #开机自启动
最后把常用的命令,软连接到系统目录下,使得可以直接调用
ln -s /app/svc/mysql/bin/* /bin
##################################################################### 安装5.7的高版本时
http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz 下载该库文件存入任意记得住的文件夹
随后在cmake时加入
-DWITH_BOOST=/app/pack/boost \
初始化: 在5.7以后mysql_install_db已经废弃了 取而代之的是 --initialize
mysql]# ./bin/mysqld --defaults-file=/etc/my.cnf -basedir=/opt/mysql/ --datadir=/opt/mysql/data/ --user=mysql --initialize
cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
#启动文件复制到系统下,修改里面两项参数
basedir=
datadir=
5.7初始化完成后,会生成默认密码 如下