1.下载包
wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz //mysql5.7编译需要依赖boost包
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.12.tar.gz
2.安装依赖包
yum -y install autoconf automake libtool cmake ncurses-devel openssl-devel lzo-devel zlib-devel gcc gcc-c++
3.建议卸载mariadb
关于mariadb的讲解见 https://blog.csdn.net/IT_10/article/details/88936915
//查看
rpm -qa | grep "mariadb"
//卸载
rpm -e 包名 --nodeps
4.解压包
//解压boost_1._59.tar.gz
tar -zxvf boost_1_59_0.tar.gz -C /var/lib/
//解压mysql
tar -zxvf mysql-5.7.12
下图是通过yum的方式安装mysql时默认路径,因此将boost库放入/var/lib中,后面的参数配置时,把mysql的数据目录放在/var/lib/mysql,安装目录放在/var/local/mysql,日志放在/var/log/mysqld,pid文件放在/var/run/mysqld。
5.创建目录
mkdir -p /var/lib/mysql
mkdir -p /var/log/mysqld
mkdir -p /var/run/mysqld
mkdir -p /var/local/mysql
设置目录权限被mysql所拥有
chown mysql:mysql 路径
6.配置编译环境
提示:所有的安装都进入root用户下进行,否则可能出现读写权限的问题。
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //安装路径
-DMYSQL_DATADIR=/var/lib/mysql //数据存放路径
-DDOWNLOAD_BOOST=1
-DWITH_BOOST=/var/lib/boost_1_59_0 //指定boost路径
-DSYSCONFDIR=/etc //MySQL配置文件所在目录
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_MYISAM_STORAGE_ENGINE=1
-DENABLED_LOCAL_INFILE=1
-DENABLE_DTRACE=0
-DDEFAULT_CHARSET=utf8 //[设置默认字符集为utf8
-DDEFAULT_COLLATION=utf8_general_ci //设置默认字符校对
-DWITH_EMBEDDED_SERVER=1
-DMYSQL_TCP_PORT=3306 //MySQL的监听端口
-DENABLED_LOCAL_INFILE=1 //启用加载本地数据
7.编译和安装
make & make install
安装完成后如下
安装路径目录如下
8.创建mysql用户
groupadd -g 1000 mysql
useradd -g 1000 -M -s /sbin/nologin -u 1000 mysql
9.编辑配置文件
vim /etc/my.cnf
10.加载mysql配置文件并初始化
./mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize-insecure
11.把mysql-server加入服务初始点
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
12.启动服务
/etc/init.d/mysql start
13.设置密码
echo "set password=password('123456');"| mysql -S /var/lib/mysql/mysql.sock
14.添加环境变量
echo "export PATH=\$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib" >> /etc/profile
刷新
source /etc/profile
15.登录
大功告成
以下是通过windows上的数据库管理工具如Navicat连接centos上的mysql方法
赋予远程登录的root用户所有权限
grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;
刷新系统权限关系表
flush privileges;