|NO.Z.00008|——————————|^^ 构建 ^^|——|Mysql&Mariadb&二进制部署配置.V1|
一、二进制包下载:
### --- 二进制包下载:
~~~ 地址:https://downloads.mariadb.org/mariadb/10.2.35/ 选择你要安装的版本;

### --- 该地址有三种数据格式的文件:
~~~ Source——源码
~~~ Binaries——二进制
~~~ Packages——rpm包(针对centos,Redhat,Ubuntu系列的)
### --- 下载二进制包:
~~~ linux表示在linux系统中效验过的程序。
~~~ mariadb-10.2.35-linux-x86_64.tar.gz版本
### --- 二进制10.2.35版本配置教程地址:
~~~ https://mariadb.com/kb/en/installing-mariadb-binary-tarballs/
~~~ 源码只带版本号,不会带linux或者window提示,包比较小,只有69.9MB左右,而二进制文件,
~~~ 是在linux或者window上编译好了的,会带有一些提示信息。
二、安装二进制程序mariadb:
1、检查系统环境:
### --- 确保当前系统没有安装相同的软件包;
[root@localhost ~]# rpm -q mariadb-server
package mariadb-server is not installed
[root@localhost ~]# rpm -q mysql-server
package mysql-server is not installed
### --- 查看当前3306端口是空闲的
[root@localhost ~]# ss -ntl
2、二进制包安装准备教程:
### --- 准备用户:
~~~ -r:普通的系统用户,
~~~ -d:指定家目录,(建议使用逻辑卷;便于扩展)
~~~ /data/mysqldb这个文件夹默认是没有的,执行上面也不会创建,加上-m强行去创建,当前不去强制,后期改
~~~ -s /sbin/nologin shell类型,
[root@localhost ~]# useradd -r -d /data/mysqldb -s /sbin/nologin mysql
[root@localhost ~]# getent passwd mysql
mysql:x:996:994::/data/mysqldb:/sbin/nologin
[root@localhost ~]# id mysql // 主组创建好了
uid=996(mysql) gid=994(mysql) groups=994(mysql)
### --- 指定存放数据库程序目录路径,
[root@localhost ~]# tar -zxvf mariadb-10.2.35-linux-x86_64.tar.gz -C /usr/local/ // -C表示指定文件的路径;解压完是mariadb-10.2.35-linux-x86_64,编译时使用的mysql目录,创建软连接或者更改目录名称,此刻会创建存放数据库程序的第一个文件夹
### --- 创建软连接
[root@localhost local]# ln -s mariadb-10.2.35-linux-x86_64/ mysql // 因为编译的时候使用的是mysql这个文件夹,建议创建软连接;也是可以的
[root@localhost local]# ll
lrwxrwxrwx 1 root root 29 Nov 6 17:11 mysql -> mariadb-10.2.35-linux-x86_64/
### --- 更改文件的所有者(不强制更改)
[root@localhost local]# ll mysql/ // 查看文件夹发现文件的所有者都是1000,
total 176
drwxrwxr-x 2 1000 1000 4096 Oct 23 01:55 bin
[root@localhost local]# chown -R root mysql/ // 只改文件的所有者,所属组不会发生变化;
[root@localhost local]# ll mysql/
drwxrwxr-x 2 root 1000 4096 Oct 23 01:55 bin
[root@localhost local]# chown -R root: mysql/ // root:加上冒号表示所属组也更改,或者root:root也是同理
[root@localhost local]# ll mysql/
drwxrwxr-x 2 root root 4096 Oct 23 01:55 bin
3、配置环境变量:
### --- 配置环境变量:
[root@localhost ~]# ls /usr/local/mysql/bin/ // 数据库的二进制文件
aria_chk mbstream mysqladmin
### --- 放到PATH变量里面
[root@localhost local]# echo PATH=/usr/local/mysql/bin:$PATH > /etc/profile.d/mysql.sh // 把mysql的二进制文件放到PATh变量里面
[root@localhost local]# . /etc/profile.d/mysql.sh // 使变量生效
[root@localhost local]# echo $PATH
/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
4、创建数据存放目录,若是生产数据,建议使用逻辑卷(逻辑卷创建教程:知识点一)
### --- 创建存放生产数据目录mysqldb(在/data下挂载逻辑卷后创建mysqldb)
[root@localhost ~]# df -h
/dev/mapper/vg0-lv_mysql 62879748 32992 62846756 1% /data
[root@localhost ~]# mkdir /data/mysqldb
[root@localhost ~]# chown mysql.mysql /data/mysqldb // 把改文件夹所有者所属组都更改为mysql
[root@localhost ~]# ll -d /data/mysqldb/
drwxr-xr-x 2 mysql mysql 6 Nov 6 17:57 /data/mysqldb/
[root@localhost ~]# chmod 770 /data/mysqldb/ // 更改文件的权限,其他人不可以访问该文件夹
[root@localhost ~]# ll -d /data/mysqldb/
drwxrwx--- 2 mysql mysql 6 Nov 6 17:57 /data/mysqldb/
5、检查程序所需要的两个文件夹:
### --- 检查程序所需要的两个文件夹:
[root@localhost ~]# ll /usr/local/mysql/ -d // 数据库程序存放的位置
drwxrwxr-x 12 root root 282 Nov 3 02:30 /usr/local/mysql/
[root@localhost ~]# ll /data/mysqldb/ -d // 收集用户数据的,生产数据存放位置
drwxrwx--- 2 mysql mysql 6 Nov 6 17:57 /data/mysqldb/
6、生成mysql数据库文件:调用脚本(进入到二进制程序所在的文件夹里面);只是指定生成数据库文件。
### --- 生成数据库数据文件
[root@localhost ~]# cd /usr/local/mysql/ // 进入到二进制程序文件夹
[root@localhost mysql]# ls scripts/ // 生成数据库文件调用脚本,该脚本在scripts目录之下。
mysql_install_db
[root@localhost scripts]# ./mysql_install_db --datadir=/data/mysqldb --user=mysql // --datadir 指定生成的数据库存放位置
FATAL ERROR: Could not find ./bin/my_print_defaults
~~~ 安装数据库;在scripty下执行会报错;
~~~ 因为该mysql_install_db脚本会调用一些文件mysql目录下的一些文件,只能切回上一级目录
[root@localhost mysql]# scripts/mysql_install_db --datadir=/data/mysqldb --user=mysql // 执行该脚本,出现ok说明调用脚本成功,生成数据库成功
Installing MariaDB/MySQL system tables in '/data/mysqldb' ...
OK
[root@localhost mysql]# ll /data/mysqldb/ // 可以在我们准备的收集用户数据的目录下看到文件
total 110620
-rw-rw---- 1 mysql mysql 16384 Nov 6 18:13 aria_log.00000001
三、配置启动程序脚本
### --- 配置启动程序脚本:修改二进制文件,告诉二进制文件启动脚本启动程序在什么位置(知识点二、知识点三);
### --- 修改启动程序二进制文件
[root@localhost mysql]# ls support-files/ // 这个目录下配置文件,作为我们mysql数据库的配置文件,提供了好几款的配置文件,
binary-configure
my-huge.cnf // 超级大的环境用该程序(针对内存来说的)
my-large.cnf // 大环境用该程序(针对内存来说的)
my-small.cnf // 小环境用该程序文件 (针对内存来说的)
my-innodb-heavy-4G.cnf // 内测4个G的用该程序(针对内存来说的)
my-medium.cnf // 中小型环境用该程序(针对内存来说的)
[root@localhost mysql]# cat support-files/mysql-log-rotate // 文件里会有简单的说明
# This logname can be set in /etc/my.cnf
# by setting the variable "log-error"
[root@localhost ~]# cp /etc/my.cnf{,.bak} // 备份我们之前的配置文件 shell语句备份范例
[root@localhost mysql]# cp support-files/my-huge.cnf /etc/my.cnf // 我们配置huge.cnf环境程序,覆盖到my.cnf我们的配置文件
cp: overwrite ‘/etc/my.cnf’?y // 表示同意覆盖
~~~ 编辑启动程序配置文件
[root@localhost mysql]# vim /etc/my.cnf // 修改我们的配置文件
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
datadir = /data/mysqldb // 添加生产数据存储位置
socket = /tmp/mysql.sock // 使用mysql.sock默认文件位置
四、配置数据库启动脚本:
### --- 配置数据库启动脚本:
### --- 设置开机自启动
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld // 把启动脚本cp到/etc/init.d/并改名称为mysqld
[root@localhost mysql]# ll /etc/init.d/mysqld
[root@localhost mysql]# chkconfig --add mysqld // 默认情况下没有设置开机自启动;添加到开机自启动中
[root@localhost mysql]# chkconfig --list
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost ~]# systemctl start mysql.service
### --- MySQL数据库安全设置:
[root@localhost ~]# mysql_secure_installation
### --- 登入mysql数据库
[root@localhost ~]# mysql -uroot -p123456
Server version: 10.2.35
MariaDB [(none)]> status
UNIX socket: /tmp/mysql.sock
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv002-database
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」