接上期,我们已经成功部署了Bind DNS服务,接下来,开始部署MySQL服务。
三、部署MySQL服务
1、安装MySQL服务必须的环境依赖
[root@Mail ~]# yum -y ncurses-devel perl perl-Data-Dumper bison ncurses python-devel libgcrypt zlib bzip2
2、从MySQL官网下载所需的MySQL服务版本,此处我们选择开源社区版,因为企业版收费,当然,如果企业中有硬性要求的话,可选择MySQL企业版。
如图,我们选择MySQL5.7.24的版本。
[root@Mail ~]# wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24.tar.gz
[root@Mail ~]# wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.24.tar.gz
由于MySQL的版本需要mysql-boost支持,所以我们必须下载mysql-boost安装包。
3、下载cmake编译工具,MySQL编译安装官方推荐是用cmake编译,因此,我们使用cmake进行编译,当然也可以用gcc编译
[root@Mail ~]# wget -c https://cmake.org/files/v3.10/cmake-3.10.1.tar.gz
4、安装cmake编译工具
[root@Mail ~]# tar -zxvf cmake-3.10.1.tar.gz
[root@Mail ~]# cd cmake-3.10.1
[root@Mail cmake-3.10.1]# ./bootstrap
[root@Mail cmake-3.10.1]# make -j `grep processor /proc/cpuinfo | wc -l` #make -j 表示进行多线程编译
安装的整个过程这里省略,根据自己的服务器配置不同,时间有长有短。
[root@Mail cmake-3.10.1]# make install
此图为安装成功后的截图,安装过程中也有可能出现一些错误,可根据日志进行排错,一般都为依赖库没有安装的问题。
5、安装mysql-boost
[root@Mail ~]# tar -zxvf boost_1_59_0.tar.gz -C /usr/local #tar -C 表示解压到指定目录
[root@Mail ~]# mv /usr/local/boost_1_59_0 /usr/local/boost
[root@Mail ~]# cd /usr/local/boost
[root@Mail boost]# ./bootstrap.sh
[root@Mail boost]# ./b2
[root@Mail boost]# ./b2 install
这里只截取部分截图供于参考。
安装完成后,将boost库文件路径添加到系统动态库路径配置文件ld.so.conf中,这里提供一个小脚本,以判断是系统32位还是64位,并做自动添加
#!/bin/bash
Kernel=`getconf LONG_BIT`
if [ "${Kernel}" = "32" ] && [ `grep -L '/usr/lib' '/etc/ld.so.conf'` ];then
echo -e "PATH=$PATH:/usr/local/boost" >> /etc/profile
echo -e "/usr/local/boost/lib" >> /etc/ld.so.conf
elif [ "${Kernel}" = "64" ] && [ `grep -L '/usr/lib64' '/etc/ld.so.conf'` ];then
echo -e "PATH=$PATH:/usr/local/boost" >> /etc/profile
echo -e "/usr/local/boost/stage/lib" >> /etc/ld.so.conf
fi
5、安装MySQL服务
a、创建MySQL工作用户及用户组、数据目录、授权等
[root@Mail ~]# groupadd mysql
[root@Mail ~]# useradd -r -s /sbin/nologin -M -g mysql mysql
[root@Mail ~]# mkdir -p /wdata/mysql/{data,logs,binlog,config}
[root@Mail ~]# chown -R mysql.mysql /wdata/mysql
[root@Mail ~]# chgrp -R mysql /usr/local/mysql
b、解压MySQL安装包并进入目录
[root@Mail ~]# tar -zxvf mysql-5.7.24.tar.gz
[root@Mail ~]# cd mysql-5.7.24
c、开始编译MySQL
[root@Mail mysql-5.7.24]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/wdata/mysql/data \
-DSYSCONFDIR=/wdata/mysql/config \
-DMYSQL_UNIX_ADDR=/wdata/mysql/data/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_CURL=/usr/lib64 \
-DMYSQL_USER=mysql \
-DINSTALL_LIBDIR=/usr/local/mysql/lib \
-DINSTALL_PLUGINDIR=/usr/local/mysql/lib/plugin \
-DWITH_BOOST=/usr/local/boost
具体的编译参数含义可参照MySQL官方文档,编译过程如下图:
d、安装MySQL
[root@Mail mysql-5.7.24]# make -j `grep processor /proc/cpuinfo | wc -l`
[root@Mail mysql-5.7.24]# make install
e、编辑MySQL配置文件,并作适当优化,这里不做阐述,下图截取一部分针对个人服务器优化过的MySQL配置文件,当然MySQL不同的版本,有些参数数是不同的或者是被去掉的。
f、设置MySQL环境变量
[root@Mail mysql-5.7.24]# echo "PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH" >> /etc/profile
[root@Mail mysql-5.7.24]# source /etc/profile
g、MySQL数据库初始化
[root@Mail mysql-5.7.24]# mysqld --initialize-insecure --user=mysql --console --basedir=/usr/local/mysql --datadir=/wdata/mysql/data
h、复制MySQL启动脚本到 /etc/init.d 目录
[root@Mail mysql-5.7.24]# cp -rf /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@Mail mysql-5.7.24]# chmod a+x /etc/init.d/mysqld
[root@Mail mysql-5.7.24]# chkconfig --add mysqld
[root@Mail mysql-5.7.24]# chkconfig mysqld on
i、添加MySQL命令软连接
[root@Mail mysql-5.7.24]# ln -sf /usr/local/mysql/lib/mysql /usr/lib/mysql
[root@Mail mysql-5.7.24]# ln -sf /usr/local/mysql/bin/mysql /usr/bin/mysql
[root@Mail mysql-5.7.24]# ln -sf /usr/local/mysql/include/mysql /usr/include/mysql
j、启动MySQL服务,并修改MySQL密码
[root@Mail mysql-5.7.24]# service mysqld start
[root@Mail mysql-5.7.24]# mysqladmin -uroot password "123456"
注意:我这里只是为了方便,将密码设置为123456,实际环境中别模仿。
k、登陆验证MySQL服务,任意执行一条命令,看MySQL初始库是否正常。
[root@Mail mysql-5.7.24]# mysql -uroot -p123456
至此,MySQL服务不是完成,我们可以查看MySQL的日志文件,看看有没有什么报错,如果有,可根据日志提示内容进行相应的排错,一般日志中都回很明确的指明错误位置。
未完待续。。。。。。