mysql 5.6源码安装 centos 7

mysql 5.6源码安装 centos 7

#!/bin/bash
#####源码通用版 source code generic linux

sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
getenforce

#hostnamectl set-hostname node$(ip addr |grep global |grep $(route  |grep default |awk '{print $NF}') |head -n1 |awk '{print $2}' |cut -d '/' -f1 |cut -d '.' -f4)

##安装依赖
yum install -y gcc gcc-c++ ncurses-devel cmake libaio bison autoconf

#增加一个名为 mysql的用户。#-g:指定新用户所属的用户组(group) #-M:不建立根目录 #-s:定义其使用的shell,/sbin/nologin代表用户不能登录系统。
groupadd mysql
useradd mysql -g mysql -M -s /sbin/nologin

#mysql5.6源码安装
#1 编译安装
wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.39.tar.gz -O mysql-5.6.39.tar.gz 

tar zxvf mysql-5.6.39.tar.gz && cd  mysql-5.6.39 && cmake ./ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/usr/local/mysql/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci &&  make && make install


#参数说明
# -DCMAKE_INSTALL_PREFIX=/usr/local/mysql          \    #安装路径
# -DMYSQL_DATADIR=/usr/local/mysql/data            \    #数据文件存放位置
# -DSYSCONFDIR=/etc                                \    #my.cnf路径
# -DWITH_MYISAM_STORAGE_ENGINE=1                   \    #支持MyIASM引擎
# -DWITH_INNOBASE_STORAGE_ENGINE=1                 \    #支持InnoDB引擎
# -DWITH_MEMORY_STORAGE_ENGINE=1                   \    #支持Memory引擎
# -DWITH_READLINE=1                                \    #快捷键功能(我没用过)
# -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock               \    #连接数据库socket路径
# -DMYSQL_TCP_PORT=3306                            \    #端口
# -DENABLED_LOCAL_INFILE=1                         \    #允许从本地导入数据
# -DWITH_PARTITION_STORAGE_ENGINE=1                \    #安装支持数据库分区
# -DEXTRA_CHARSETS=all                             \    #安装所有的字符集
# -DDEFAULT_CHARSET=utf8                           \    #默认字符
# -DDEFAULT_COLLATION=utf8_general_ci


\cp ./support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld

echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
source /etc/profile

chown -R mysql:mysql /usr/local/mysql

#初始化数据库
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql


[ $(grep -c 'sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES' /etc/my.cnf) -eq 0 ] && sed -i '/\[mysqld\]/ a sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES' /etc/my.cnf

sed -i 's#^datadir=.*#datadir=/usr/local/mysql/data#g'  /etc/my.cnf
sed -i 's#^socket=.*#socket=/usr/local/mysql/mysql.sock#g'  /etc/my.cnf
sed -i 's#^log-error=.*#datadir=/usr/local/mysql/log/mysql.log#g'  /etc/my.cnf
sed -i 's#^pid-file=.*#pid-file=/usr/local/mysql/mysql.pid#g'  /etc/my.cnf
sed -i 's#^socket=.*#socket=/tmp/mysqld.sock#g'  /etc/my.cnf

#sed -i 's#^socket=.*#socket=/usr/local/mysql/mysql.sock#g'  /etc/my.cnf
#ln -s /usr/local/mysql/mysql.sock /tmp/mysqld.sock
egrep -v '^#|^$' /etc/my.cnf


/etc/init.d/mysqld restart

#systemctl start mysqld 
systemctl enable mysqld 

猜你喜欢

转载自www.cnblogs.com/blog-lhong/p/12692824.html