Centos8 二进制安装MariaDB-10.4.21
1. 安装Mariadb
1.1 安装依赖包
yum -y install gcc gcc-c++ libncurses* lrzsz cmake zlib-devel libcurl-devel boost-devel ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel perl-Data-Dumper
1.2 上传mariadb安装包
rz
1.3 解压安装包
建立软链接是为了以后升级数据库更方便
tar xf mariadb-10.4.21-linux-systemd-x86_64.tar.gz -C /usr/local/
ln -sf /usr/local/mariadb-10.4.21-linux-systemd-x86_64 /usr/local/mysql
1.4 添加mysql用户
useradd -r -s /sbin/nologin -d /data -u 306 mysql
2. 创建数据库配置
2.1 初始化数据库
mkdir /data
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data
2.2 工作目录赋权
chown -R mysql.mysql /data /usr/local/mysql /usr/local/mariadb*
2.3 配置mariadb启动配置文件
mkdir /etc/my.cnf.d
cat > /etc/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data
port=3306
socket=/usr/local/mysql/mysql.sock
pid-file=/usr/local/mysql/mysql.pid
[client]
socket=/usr/local/mysql/mysql.sock
EOF
2.4 配置mariadb启动文件
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
echo "PATH=/usr/local/mysql/bin:$PATH" >/etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
sed -Ei 's#^(basedir=)$#\1\/usr\/local\/mysql#' /etc/init.d/mysqld
sed -Ei 's#^(datadir=)$#\1\/data#' /etc/init.d/mysqld
确认这部分和实际配置的目录相符
2.5 启动Mariadb并设置开机自动启动
chkconfig --add mysqld
systemctl enable mysqld
systemctl start mysqld
2.6 连接数据库
3. 报错处理:
3.1 报错1:
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
[root@mariadb10-4 mysql]# yum provides libncurses.so.5
Last metadata expiration check: 0:35:16 ago on Thu 16 Sep 2021 04:33:15 PM CST.
ncurses-compat-libs-6.1-7.20180224.el8.i686 : Ncurses compatibility libraries
Repo : baseos
Matched from:
Provide : libncurses.so.5
解决方法:
yum install libncurses* -y
3.2 报错2:
[ERROR] Can't start server : Bind on unix socket: Permission denied
[ERROR] Do you already have another mysqld server running on socket:
[ERROR] /usr/local/mysql/mysql.sock ?
Aborting
[ERROR] Can't start server : Bind on unix socket: Permission denied
[ERROR] Do you already have another mysqld server running on socket: /usr/local/mysql/mysql.sock ?
[ERROR] Aborting
mysqld_safe mysqld from pid file /usr/local/mysql/mysql.pid ended
解决方法:
chown -R mysql.mysql /usr/local/mariadb* /usr/local/mysql*