一、准备工作
1.1 卸载系统自带mysql
查看系统是否自带MySQL, 如果有就卸载了, 卸载方式有两种yum, rpm, 这里通过yum卸载
rpm -qa | grep mysql //查看系统自带mysql yum -y remove mysql-* //卸载mysql rpm -e --nodeps mysql-5.1.73-3.el6_5.x86_64 //卸载mysql
1.2 卸载系统自带boost,并安装boost_1_59_0
mysql 5.7 依赖于boost_1_59_0或更高版本, 查看系统是否自带boost, 如果有就卸载了
rpm -qa | grep boost //查看系统自带boost yum -y remove boost-* //卸载boost rpm -e --nodeps boost-filesystem-1.41.0-11.el6_1.2.x86_64 //卸载boost
安装 boost_1_59_0 , cmake 编译时加上 -DWITH_BOOST=/usr/local/boost
tar -zxvf boost_1_59_0.tar.gz mv boost_1_59_0 /usr/local/boost
1.3 安装依赖包
yum install gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl
1.4 安装cmake
tar -zxvf cmake-3.4.1.tar.gz ./configure make && make install
1.5 下载 mysql 源码包 mysql-5.7.10.tar.gz
通过wget下载
wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.10.tar.gz
windows中下载需要的源码包,通过文件传输工具rzsz上传
yum install lrzsz //安装rzsz
rz //上传
1.6 创建用户组mysql和用户mysql
检查系统是否已经有mysql用户,如果没有则创建
cat /etc/group | grep mysql //查看是否存在mysql用户组 cat /etc/passwd | grep mysql //查看是否存在mysql用户 groupadd mysql //创建用户组 useradd -r -g mysql mysql //创建用户
1.7 创建mysql目录和数据库目录,并赋予用户mysql权限
创建mysql目录和数据库目录
mkdir /usr/local/mysql //创建mysql目录 mkdir /usr/local/mysql/data //创建数据库目录 mkdir /usr/local/mysql/log //创建日志文件目录 chown -R mysql:mysql /usr/local/mysql //赋予权限
二、编译、安装、配置mysql
2.1 编译、安装mysql
编译时带上一些参数如安装根目录、数据库目录、编码、端口号、默认存储引擎等
编译的时候记得带上 -DWITH_BOOST=/usr/local/boost
tar -zxvf mysql-5.7.10.tar.gz cd mysql-5.7.10 cmake . \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DMYSQL_TCP_PORT=3306 \ -DMYSQL_USER=mysql \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DENABLE_DOWNLOADS=1 \ -DDOWNLOAD_BOOST=1 \ -DWITH_BOOST=/usr/local/boost make && make install
配置选项参考地址, [http://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html][1]
2.2 编译出错, 重新编译前要删除编译失败的文件
重新编译时,需要清除旧的对象文件和缓存信息
make clean rm -f CMakeCache.txt
2.3 配置my.cnf
my.cnf文件可以根据自己的需求选择合适的配置, 网上有很多, 可以参考, 这里不在详细说明。记得把 my.cnf 放到 /etc 目录下
mv my.cnf /etc/my.cnf
2.4 初始化系统数据表
自 mysql5.7 开始,初始化系统表不再使用 mysql_install_db
工具, 而是使用mysqld --initialize-insecure --user=mysql
, 其中 --initialize
表示默认生成一个安全的密码,--initialize-insecure
表示不生成密码, 密码为空
cd /usr/local/mysql
bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
2.5 添加环境变量, 注册成系统服务
添加环境变量, 在 PATH 中添加参数 :/usr/local/mysql/bin:/usr/local/mysql/lib
vim /root/.bash_profile PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib source /root/.bash_profile
注册成系统服务
cp support-files/mysql.server /etc/init.d/mysqld chkconfig mysqld on service mysqld start/stop/restart/status
首次登陆设置密码
- 直接使用 mysqladmin 设置密码
mysqladmin -uroot -p password 123456 //登录时候
- 或者在使用空密码登录mysql后,在mysql客户端执行下面修改密码命令
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456'); //登录之后
查看进程
netstat -lntp | grep 3306 pkill mysqld
转自
mysql5.7.10 源码编译安装记录 (centos6.4) - hpy1165331898的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/hpy1165331898/article/details/50557022