1,从官方网址下载MySQL5.7.19源码包
2,安装好CentOS6.7 64位操作系统。
3. 预先安装依赖软件包:yum -y install  gcc gcc-c++ autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake  libaio libaio-devel autoconf bzr bison libtool   //相关依赖包
4
1 查看是否安装过mysql
 rpm -qa | grep mysql
如果安装了,那就停止MySQL服务并且将其卸载
service  mysqld   stop
如果是rpm包安装的就用rpm  -e  卸载,如果yum安装就用yum   -y  remove卸载。并且删除安装目录等
正式安装MySQL
2 添加MySQL用户和所属组(要先查看是否已经存在mysql用户和组)
cat  /etc/passwd  | grep  mysql          //查看是否已存在mysql用户
cat   /etc/group  | grep  mysql          //查看是否已存在mysql组
groupadd mysql          //如果先执行下面的命令会提示没有mysql这个组
useradd -r -g mysql mysql            
3 创建mysql安装目录和数据目录
cd /home
 mkdir mysql              //创建目录作为MySQL5.7.19安装路径
 mkdir data                      //创建目录作为MySQL5.7.19数据路径
4、    修改MySQL目录所有者
chown -R mysql:mysql  /home/mysql
5   解压源码包
把两个包放到/home目录下
tar -zxvf mysql-5.7.11.tar.gz
tar –zxvf boost_1_59_0.tar.gz boost会自动解压到mysql目录
 
编译安装
cmake \
-DCMAKE_INSTALL_PREFIX=/home/mysql \
-DMYSQL_DATADIR=/home/data/ \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_BOOST=./boost/
 
 
make    
 make install
再次确认,返回 0  说明安装成功没有问题
echo $?
 
切换到安装目录:
 cd /home/mysql/bin
初始化数据库:
 ./mysqld --initialize --user=mysql --datadir=/home/data/ --basedir=/home/mysql --socket=/tmp/mysql.sock
版本初始化以后会给root用户一个初始密码
 
 添加MySQL服务,拷贝mysql配置文件
 cd /home/mysql/support-files/
 cp  -a  mysql.server /etc/init.d/mysql    
 
// 添加下面的,这里为了简洁,省去其他的,都是按照默认的
[root@Allen support-files]# vim /etc/my.cnf
[mysqld]
port=3306
basedir=/home/mysql
datadir=/home/data
socket=/tmp/mysql.sock
user=mysql
 
6、    重启MySQL、并设置开机自启
[root@Allen support-files]# service mysql  start
Starting MySQL. SUCCESS!
[root@Allen support-files]#chkconfig   mysql  on  //设置开机自启,要养成一个好习惯
注意:亲测mysql5.7.17 设置服务启动是mysql    而不是mysqld,上面没有打错。可能是因为版本的原因。本人一开始就是编译mysql5.7.17的。
[root@Allen support-files]# ps -ef        //查看是启动
 
7、    登录MySQL
[root@Allen ~]#cd /home/mysql/bin
[root@Allen bin]# ./mysql -uroot –p
 
mysql> SET PASSWORD = PASSWORD('qwe12345');   
 
mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效
mysql> flush privileges;
mysql> quit;
             
允许mysql远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;