源码部署 Mariadb - CentOS8

2023-06-15 14:45:59 浏览数 (1)

环境

1. 系统:Centos 8 mariadb-10.5.2 2. 依赖处理

代码语言:javascript复制
dnf install -y gcc make gcc-c   libxml2 libxml2-devel 
openssl openssl-devel bzip2 bzip2-devel curl-devel 
postgresql-devel libpng libjpeg-devel libjpeg 
libpng-devel freetype freetype-devel libicu-devel 
libzip cmake ncurses-devel

安装部署

1. 创建程序用户 请按需修改

代码语言:javascript复制
groupadd -r mariadb
useradd  -g mariadb -s /sbin/nologin mariadb

2. 创建程序及数据目录 请按需修改

代码语言:javascript复制
mkdir /usr/local/mariadb
mkdir /data/mariadb
chown -Rf mariadb:mariadb /data/mariadb

3. 编译安装 请按需修改

代码语言:javascript复制
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb 
-DMYSQL_DATADIR=/data/mariadb 
-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

make -j 4
make install

// 删除默认配置文件
rm -rf /etc/my.cnf

// 生成新的配置文件、数据文件
./scripts/mysql_install_db --user=mariadb --basedir=/usr/local/mariadb --datadir=/data/mariadb

4. 修改配置、添加启动项 请按需修改

代码语言:javascript复制
  // 复制启动脚本到 /etc/rc.d/init.d/mysqld,并赋予执行权限
  cd /usr/local/mariadb
  bin/mysqld_safe --datadir='/data/mariadb'
  cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
  chmod 755 /etc/rc.d/init.d/mysqld

  // 修改启动脚本`$bindir/mysqld_safe --datadir="$datadir"`这行
  // 改为 `$bindir/mysqld_safe --user=root --datadir="$datadir"`,加入 --user=root,不然会启动失败
  vim /etc/init.d/mysqld
  systemctl daemon-reload
  service mysqld start
  
   // 加入启动项
   chkconfig mysqld on
   
   ln -s /usr/local/mariadb/lib/mysql /usr/lib/mariadb      (可忽略)
   mkdir /var/lib/mariadb              (可忽略)
   ln -s /tmp/mysql.sock /var/lib/mariadb/mysql.sock
   ln -s /usr/local/mariadb/include/mysql /usr/include/mariadb

5. 初始化数据及简单安全配置 请按需修改

代码语言:javascript复制
  // 初始化数据
  bin/mysql_secure_installation
代码语言:javascript复制
  // 添加变量
  echo "export PATH=$PATH:/usr/local/mariadb/bin" >> /etc/profile
  source /etc/profile

FAQ


0 人点赞