centos7编译安装mysql并添加到开机启动

之前一直做centos6编译安装mysql比较多,今天有时间顺便做一个centos7编译安装mysql的教程,编译安装比yum安装和rpm更加灵活,可以自定义需要开启的配置和指定部署目录和数据目录,当然编译安装比较麻烦的是需要自己安装依赖包和编译配置参数,还需要自己添加系统服务等

首先安装基础依赖包

yum install gcc gcc-c++ ncurses* perl-Module-Install -y


安装cmake

cd /usr/local/src 
tar zxvf cmake-2.8.8.tar.gz 
cd cmake-2.8.8 
./configure 
make           #编译 
make install   #安装


接着开始安装mysql

groupadd mysql  #添加mysql组    
useradd -g mysql mysql -s /sbin/nologin  #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统    
mkdir -p /data/mysql  #创建MySQL数据库存放目录    
chown -R mysql:mysql /data/mysql   #设置MySQL数据库目录权限    
mkdir -p /usr/local/mysql #创建MySQL安装目录    
cd /usr/local/src    
tar zxvf mysql-5.5.20.tar.gz  #解压    
cd mysql-5.5.20    
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_DATADIR=/data/mysql  -DSYSCONFDIR=/etc   #配置    
make #编译    
make install  #安装    
cd /usr/local/mysql    
cp ./support-files/my-huge.cnf  /etc/my.cnf   #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)    
vi /etc/my.cnf   #编辑配置文件,在 [mysqld] 部分增加下面一行    
datadir = /data/mysql  #添加MySQL数据库路径    
:wq!  #保存退出    
./scripts/mysql_install_db --user=mysql  #生成mysql系统数据库


centos7和centos6添加系统服务和开机启动有些不一样,这里介绍如何将mysql添加centos7开机启动

首先我们还是需要用到在centos6上的脚本,我们将它复制到另一个目录,例如我建立了一个/usr/local/mysql/service目录

mkdir /usr/local/mysql/service  #创建启动脚本文件,可以就用mysql包里面提供的
cp ./support-files/mysql.server /usr/local/mysql/service/mysqld
chmod +x /usr/local/mysql/service/mysqld
vi /usr/local/mysql/service/mysqld  #编辑    
basedir = /usr/local/mysql   #MySQL程序安装路径    
datadir = /data/mysql  #MySQl数据库存放目录

  

添加到centos7系统服务中,需要我们自己新建脚本来编写,脚本里面有一定规范

vi /usr/lib/systemd/system/mysqld.service

#添加如下内容

[Unit]
Description=mysql project
After=mysqld.service
  
[Service]
Type=forking
User=mysql
Group=mysql
PIDFile=
ExecStart=/usr/local/mysql/service/mysqld start
ExecReload=/usr/local/mysql/service/mysqld restart
ExecStop=/usr/local/mysql/service/mysqld stop
PrivateTmp=true
  
[Install]
WantedBy=multi-user.target

赋予脚本754权限

chmod 754 /usr/lib/systemd/system/mysqld.service


systemctl enable mysqld.service #设置开机启动
systemctl disable mysqld.service #关闭开机启动
systemctl start mysqld.service #启动数据库
systemctl list-unit-files | grep mysqld #查看mysql开机启动状态

360截图20181025183103455.jpg

注意:可能mysql无法正常启动,提示:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

需要添加一条软链接,先find到mysql.sock文件位置,然后软链接到/tmp下面

ln -s /tmp/systemd-private-fced3e111d914c6f8d946cb7f5cbdc67-mysqld.service-EI5Hd0/tmp/mysql.sock /tmp/mysql.sock

或者直接修改my.cnf文件内的sock文件位置为上面find到的位置即可


添加环境变量,在任何地方都可以直接使用mysql命令

vi /etc/profile   #把mysql服务加入系统环境变量:在最后添加下面这一行    
export PATH=$PATH:/usr/local/mysql/bin    
:wq! #保存退出


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/564.html