在Linux中源码安装MariaDB

2023-05-16

在公网IP为x.x.x.x,安装CentOS8(Alibaba Cloud Linux  3.2104 LTS 64位)系统的服务器上进行源码安装mariadb-10.5.16。

MariaDB源码下载

第一步,进入到MariaDB官网下载对应版本的MariaDB源码。

下载地址:Download MariaDB Server - MariaDB.org

第二步,下载源码安装包mariadb-10.5.16.tar.gz。

MariaDB源码配置

linux文件管理工具:WinSCP 5.14.4

linux系统版本:CentOS8 64位

安装源文件版本:mariadb-10.5.16.tar.gz

第一步,安装前,检测系统是否自带安装MySQL。

命令:rpm -qa | grep mysql

若结果显示类似“mysql-libs-5.1.52-1.el6_0.1.x86_64”,则可以选择进行卸载。

# 普通删除模式

rpm -e mysql-libs-5.1.52-1.el6_0.1.x86_64

# 如果使用普通删除模式命令删除时,提示有依赖的其它文件,则用强力删除模式命令对其进行强力删除

rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64

第二步,检查否存在mariadb数据库。

命令:rpm -qa | grep mariadb

若结果显示类似“mariadb-libs-5.5.56-2.el7.x86_64”,则可以选择进行卸载。

命令:rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

第三步,用WinSCP工具将mariadb-10.5.16.tar.gz上传到公网IP地址为x.x.x.x的服务器中的/usr/local/src目录下面。

步,安装依赖(如缺少其他依赖,需自行安装)。

命令:yum install -y autoconf cmake gcc gcc-c++ bison bison-devel libaio-devel libcurl-devel libarchive-devel boost-devel libevent-devel ncurses-devel openssl-devel zlib zlib-devel

第五步,添加系统mysql组和mysql用户。

检查mysql组和用户是否存在。

命令:cat /etc/group | grep mysql

若结果显示“mysql:x:1002:”,则说明mysql组存在,无需再添加。

cat /etc/passwd | grep mysql

若结果显示“mysql:x:994:1002::/home/mysql:/bin/bash”,则说明mysql用户存在,无需再添加。

若结果显示mysql组和用户不存在,则执行添加命令。

命令:useradd mysql

(groupadd mysql

useradd -r -g mysql mysql)

#useradd -r参数表示mysql用户是系统用户,不可用于登录系统

MariaDB源码安装

第一步,创建data文件夹。

命令:mkdir -p /data/mysql/data

第二步,进入安装包所在目录,解压文件,并重命名文件

解压文件命令:cd /usr/local/src

tar -zxvf mariadb-10.5.16.tar.gz

第三步,编译安装mysql。

命令:cd /usr/local/src/mariadb-10.5.16

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mariadb-10.5.16 \

-DMYSQL_UNIX_ADDR=/usr/local/mariadb-10.5.16/tmp/mysql.sock \

-DMYSQL_DATADIR=/data/mysql/data \

-DMYSQL_USER=mysql \

-DMYSQL_TCP_PORT=3306 \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DENABLED_LOCAL_INFILE=1

若结果显示“Build files have been written to: /usr/local/src/mariadb-10.5.16”,则mysql配置成功。

# make需要花费较长时间(一般不推荐编译安装mariadb)

命令:make && make install

第四步,配置环境变量。

在/etc/profile文件中加入下面的代码:

export PATH=/usr/local/mariadb-10.5.16/bin/:$PATH

文件生效命令:source /etc/profile

第五步,在/usr/local/mariadb-10.5.16/support-files目录下新建my.cnf文件。

my.cnf文件中写入下面的代码:

[mysqld]

basedir = /usr/local/mariadb-10.5.16

datadir = /data/mysql/data

user = mysql

port = 3306

sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

lower_case_table_names = 1

第六步,将目录/usr/local/mariadb-10.5.16和/data/mysql/data的所有者及所属组改为mysql,并赋予权限。

命令:chown -R mysql:mysql /usr/local/mariadb-10.5.16

chown -R mysql:mysql /data/mysql/data

chmod -R 755 /usr/local/mariadb-10.5.16

chmod -R 755 /data/mysql/data

第七步,初始化数据库。

命令:yum -y install perl perl-devel

yum -y install libaio

cd /usr/local/mariadb-10.5.16

./scripts/mariadb-install-db --user=mysql --basedir=/usr/local/mariadb-10.5.16 --datadir=/data/mysql/data

若初始化时结果显示“FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:

Data::Dumper”,则需要安装perl即可。

命令:yum install -y perl-Module-Install.noarch

若初始化时结果显示“mysql初始化出现:Installing MySQL system tables.../usr/local/mariadb-10.5.16/bin/mysqld: error while loading shared”,则需要安装libaio即可。

命令:yum -y install libaio*

文件安装成功后,继续运行数据库初始化命令就可以成功了。

第八步,数据库初始化后,登录mysql不需要密码。

第九步,进入/usr/local/mariadb-10.5.16/support-files,启动mysql服务。

命令:cd /usr/local/mariadb-10.5.16/support-files

./mysql.server start

若结果显示“The server quit without updating PID file”,则很大可能是目录/usr/local/mariadb-10.5.16和/data/mysql/data的权限问题。数据库存放目录的权限一定要赋予/data/mysql/data。然后再次初始化数据库和启动mysql服务,若结果显示“SUCCESS!”,则成功。

第十步,把启动脚本放到开机初始化目录。

命令:cd /usr/local/mariadb-10.5.16/support-files

cp mysql.server /etc/init.d/mysql

赋予可执行权限命令:chmod +x /etc/init.d/mysql

添加服务命令:chkconfig --add mysql

第十一步,登录mysql,不需要密码。

命令:cd /usr/local/mariadb-10.5.16/bin

./mysql -u root -p

若结果显示“MariaDB [(none)]> ”,则说明数据库登录成功了;结果显示“ Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)”,则说明数据库登录不成功,mysql服务没有启动,那就再次初始化数据库和启动mysql服务。最后再次登录mysql。

第十二步,数据库安装设置,重置数据库root账号密码,执行该命令前必须开启mysql服务。

命令:mysql_secure_installation

或       /usr/local/mariadb-10.5.16/bin/mysql_secure_installation

若结果显示“Enter current password for root (enter for none):”,

则输入当前root账号密码,刚安装默认为空,直接回车即可。

“Set root password? [Y/n]”,输入y回车。

“New password:”,输入密码。

“Re-enter new password:”,重复输入密码。

“Remove anonymous users? [Y/n]”,输入y回车。

“Disallow root login remotely? [Y/n]”,输入y回车。

“Remove test database and access to it? [Y/n]”,输入y回车。

“Reload privilege tables now? [Y/n]”,输入y回车。

第十三步,登陆测试,执行登录命令并输入密码。

命令:mysql -uroot -p

输入登录密码“123456”,进入MariaDB shell状态。

第十四步,重启mysql生效。

命令:service mysql stop

service mysql start

service mysql restart

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Linux中源码安装MariaDB 的相关文章

随机推荐