文章目录
- 前言:
- 环境:
- 安装前准备:
- 安装 Cmake、MySQL:
- Cmake安装:
- MySQL安装:
- 1. 源码安装:
- 2. MySQL初始化:
- 3.提供配置文件 :
- 4. 手动启动:
- 5. 登录MySQL:
- 6. 做启动项,启动MySQL:
- 7. 做软连接,方便使用MySQL相关命令:
前言:
在我们实际的生产环境中,我们安装服务通常都是使用yum 直接使用安装,但有些服务需要使用我们自定义的目录,所以yum达不到,我们需要通过源码去安装服务,从而达到自定义的使用条件。下面是Mysql源码安装服务的实例展示。
环境:
安装系统: Centos 7.5
MySQL版本: mysql 5.6
Cmake版本:camke 2.8
安装前准备:
上传安装包
MySQL:mysql-5.6.38.tar.gz
Cmake:cmake-2.8.4.tar.gz
依赖安装
yum -y install gcc gcc-c++ bison ncurses ncurses-devel boost
安装 Cmake、MySQL:
Cmake安装:
Cmake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。
源码安装Cmake
tar zxf cmake-2.8.4.tar.gz #解压
cd cmake-2.8.4 #切换cmake目录下
./configure #默认进行文件配置,后面可加参数
make && make install #编译并安装
cmake -version #查看cmake版本信息
Cmake 也可直接 yum安装
yum -y install cmake
MySQL安装:
创建MySQL用户
useradd mysql
查看原系统是否已经安装,如果安装请卸载。
6系统和7系统的数据库服务名称不同,分别为mysql、mariadb。
rpm -qa | grep mysql或mariadb
有卸载
rpm -e mysql或mariadb
1. 源码安装:
tar zxf mysql-5.6.38.tar.gz #解压
cd mysql-5.6.38 #切换到mysql目录下
cmake . #执行Makefile文件,编译程序,生成可执行文件
make && make install #编译并进行安装
2. MySQL初始化:
chown -R mysql.mysql /usr/local/mysql/ #设置MySQL文件下的属主和属组都为MySQL用户
cd /usr/local/mysql #切换到MySQL目录下
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
#初始化目录,user指定使用哪个用户来运行mysql server,basedir,datadir通过db初始化命令更改db存放位置。
注意:再初始化的时候,有可能会出现致命错误:请在执行/usr/local/MySQL/scripts/MySQL _ install _ db之前安装以下Perl模块
FATAL ERROR: please install the following Perl modules before executing scripts/mysql_install_db:
Data::Dumper
解决方法:
yum -y install autoconf
3.提供配置文件 :
cp support-files/my-default.conf /etc/my.cnf #把系统默认的文件覆盖掉
4. 手动启动:
cd /usr/local/mysql/support-files/ #切换到mysql启动文件下
./mysql.server start # 启动mysql服务
ps -ef | grep mysql #查看mysql进程
5. 登录MySQL:
cd /user/local/mysql/bin #切换到mysql的bin目录下,bin目录为启动停止目录。
./mysql #执行mysql 进入
6. 做启动项,启动MySQL:
cp /usr/local/msyql/support-files/mysql.server /etc/init.d/mysqld
# 复制源码安装的mysql服务到系统的启动项中
service mysqld restart #通过启动项重启mysql服务
7. 做软连接,方便使用MySQL相关命令:
ln -s /usr/local/mysql/bin/* /usr/local/bin/ #做软连接
mysql #直接mysql进入数据库