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