之前一直做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开机启动状态
注意:可能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! #保存退出