Centos Maridb 数据库编译安装

环境要求

  • Centos7
  • 10.3.9

注意事项

  • 如果是最小版本安装的centos7系统,需要先安装防火墙管理工具
yum install -y net-tools
  • 查看防火墙状态(Active: inactive (dead))
systemctl status firewalld.service
  • 如果提示(Active: active (running)),关闭防火墙
systemctl stop firewalld.service
  • 关闭 SELinux
vi /etc/selinux/config   # 将该文件中的  SELINUX  修改为  disabled 状态
  • 安装编译工具(新机器一般都需要,编译软件需要依赖的包)
yum -y install gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl make cmake

环境搭建

  • 查看默认数据库配置文件
find -H /etc/ | grep my.c
  • 删除默认的数据库配置
rm -rf /etc/my.cnf /etc/my.cnf.d/
  • 再次查看默认配置
find -H /etc/ | grep my.c

# [root@localhost mariadb]# find -H /etc/ | grep my.c
# /etc/pki/tls/certs/make-dummy-cert
# /etc/pki/tls/certs/renew-dummy-cert
# [root@localhost mariadb]#

## 到目前为止, 系统最小化安装自带的数据库配置文件已经删除干净了!
  • 准备用户和组
groupadd mysql
useradd mysql -g mysql -M -s /sbin/nologin
# 最后的mysql表示用户名。
# -g表示指定用户的组名为mysql。
# -M表示不创建用户主目录。
# -s表示指定用户所用的shell,此处为/sbin/nologin,表示不登录。
  • 进入 /usr/local 下载mysql到服务器上
wget https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.3.9/source/mariadb-10.3.9.tar.gz
  • 如果 提示 找不到 wget,先安装wget,安装完成后再执行上面步骤的下载mysql
yum install -y wget
  • 解压文件
tar -zxvf mariadb-10.3.9.tar.gz
  • 进入到解压文件中
cd mariadb-10.3.9
  • 创建数据库文件存储位置
mkdir -p /usr/local/mariadb/{data,logs,pids}
  • 给上面创建的文件夹赋予权限
chown -R mysql:mysql /usr/local/mariadb
  • 使用cmake命令进行编译(一定要确保在 安装包所在文件夹中 /usr/local/mariadb-10.3.9 )
# DDEFAULT_CHARSET 可选utf8 和 utf8mb4
#  utf8 :  3字节,空间少
#  utf8mb4:  4字节,占用空间较多,如果存 emoji 表情之类的,utf8mb4兼容utf8

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb \
 -DMYSQL_DATADIR=/usr/local/mariadb/data \
 -DSYSCONFDIR=/etc \
 -DWITHOUT_TOKUDB=1 \
 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
 -DWITH_ARCHIVE_STPRAGE_ENGINE=1 \
 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
 -DWIYH_READLINE=1 \
 -DWIYH_SSL=system \
 -DVITH_ZLIB=system \
 -DWITH_LOBWRAP=0 \
 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
 -DDEFAULT_CHARSET=utf8 \
 -DDEFAULT_COLLATION=utf8_general_ci

# 编译过程中遇到 `Could NOT find GnuTLS (missing: GNUTLS_LIBRARY GNUTLS_INCLUDE_DIR)` ,
# 编译失败请删除CMakeCache.txt
rm -f CMakeCache.txt
# 安装 GnuTLS
yum -y install openssl-devel
  • 使用 make 进行编译
make
  • 使用 make install 进行安装
make install
  • 将mariadb 的可执行文件加入环境变量
vi /etc/profile
# 在文件尾部追加
export PATH=/usr/local/mariadb/bin:/usr/local/mariadb/lib:$PATH
# 使环境变量生效
. /etc/profile
  • 初始化数据库, –initialize 表示默认生成一个安全的密码,–initialize-insecure 表示不生成密码
 mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mariadb --datadir=/usr/local/mariadb/data
  • 将maridb服务文件拷贝到/etc/init.d/目录,并给出执行权限
cp /usr/local/mariadb-10.3.9/support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
  • 初始化数据库
cd /usr/local/mariadb/scripts
./mysql_install_db --basedir=/usr/local/mariadb --datadir=/usr/local/mariadb/data --user=mysql
  • 初始化数据库密码
# mysqladmin命令格式:mysqladmin -u 用户名 -p 旧密码 password 新密码
# 新安装数据库root没有密码,所以-p 旧密码一项就可以省略了。
mysqladmin -uroot password 123456

版权声明:本文为david_shangyin原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。