从源代码构建MySQL

2020-01-21 10:20:41 浏览数 (1)

简介:

一直都是用的lnmp一键安装脚本,然后最近想体验一下手动的从源代码安装lnmp的感觉

环境

系统:centos7

准备

安装一下必要的工具:

代码语言:javascript复制
yum install gcc gcc-c   ncurses-devel perl  
安装CMake

下载

代码语言:javascript复制
wget https://cmake.org/files/v3.7/cmake-3.7.2.tar.gz
tar -zxvf cmake-3.7.2.tar.gz
cd cmake-3.7.2
./bootstrap
make
make install
设置MySQL用户和组:
新增mysql用户组
代码语言:javascript复制
groupadd mysql
新增mysql用户
代码语言:javascript复制
useradd -s /sbin/nologin -g mysql -M mysql
创建mysql安装文件夹
代码语言:javascript复制
mkdir -p /home/mysql/{data,log,tmp}
chown -R mysql:mysql /home/mysql/
安装
下载

下载mysql

代码语言:javascript复制
wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-boost-5.7.23.tar.gz
tar -zxvf mysql-boost-5.7.23.tar.gz
编译
代码语言:javascript复制
cmake . -DCMAKE_INSTALL_PREFIX=/home/mysql -DMYSQL_DATADIR=/home/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=/home/mysql-boost-5.7.23/boost

因为我下载的mysql是自带boost库的,所以我直接指定文件路径就好

编译安装
代码语言:javascript复制
make && make install

等他编译完成 可能需要一会的等待 编译完成后,添加环境变量

代码语言:javascript复制
echo "export PATH=$PATH:/home/mysql/bin">>/etc/profile
source /etc/profile

接下来配置my.cnf 这里推荐一个自动生成my.cnf文件的网站 http://imysql.com/my-cnf-wizard.html 填写一些必要的信息,然后下载my.cnf文件 复制到/etc/

代码语言:javascript复制
cp my.cnf /etc/
初始化:
代码语言:javascript复制
mysqld --defaults-file=/etc/my.cnf --initialize --datadir=/home/mysql/data --user=mysql --basedir=/home/mysql
启动
代码语言:javascript复制
mysqld_safe --defaults-file=/etc/my.cnf &

最后添加启动项,这样就可以不用一直用mysqld_safe启动mysql了

代码语言:javascript复制
cp /home/mysql/support-files/mysql.server /etc/init.d/mysqld

然后修改一下mysql的密码

先暂停所有的mysql服务

代码语言:javascript复制
/etc/init.d/mysqld stop
mysqld_safe --skip-grant-tables --skip-networking &

mysql -p
mysql> update mysql.user set authentication_string=password('password') where user='root' and Host = 'localhos

然后在重新启动mysql,用你上面的密码登录就好了

0 人点赞