二进制包安装MySql服务

什么是数据库

  • 描述事物的符号记录,可以是数字、文字、图形、图像、声音、语言等,数据有多种形式,他们都可以经过数字转化后存入计算机。

数据库

  • 存储数据的仓库,是长期存放在计算机内,有组织、可共享的大量数据的集合。数据库中的数据按照一定数据模型组织、描述和存储,具有较小的冗余度,较高的独立性和易扩展性,并为各种用户共享,总结为以下几点:
  1. 数据结构化
  2. 数据的共享性高冗、余度低、易扩充
  3. 数据独立性高
  4. 数据由DBMS统一管理和控制(安全性、完整性、并发控制、故障恢复)

生产环境中使用通用二进制包安装

作用

  • 二进制包:源码包经过成功编译之后产生的包

  • 优点:由于二进制包在发布之前就已经完成了编译的工作,因此用户安装软件的速度较快

  • 注意:在生产环境中通用二进制包安装方法较为常用

软件包下载

根据上图系统参数里的glibc版本cpu架构选择

安装过程

使用xftp将软件包上传到根目录
解压缩
复制代码
[root@server ~]# tar  xvf  mysql-8.0.37-linux-glibc2.17-x86_64.tar.xz

[root@server ~]# cd  mysql-8.0.37-linux-glibc2.17-x86_64

[root@server mysql-8.0.37-linux-glibc2.28-x86_64]# ls
bin   include  LICENSE  README  support-files  docs  lib  man  share
使用前的准备
复制代码
# 移动到默认安装目录,也可自行修改
[root@server ~]# cd  ~ 

[root@server ~]# mv  mysql-8.0.37-linux-glibc2.17-x86_64  /usr/local/mysql

[root@server /]# cd /usr/local/mysql   

[root@server mysql]# groupadd mysql    # 创建名为mysql的用户组

[root@master mysql]# tail -1 /etc/group
nginx:x:987:

[root@server mysql]# useradd -r -g mysql -s /bin/false mysql  # 创建名为 mysql的系统用户,将其添加到mysql用户组中,并设置其登录shell为/bin/false,以限制该用户的登录权限

[root@master mysql]# id mysql
用户id=987(mysql) 组id=1001(mysql) 组=1001(mysql)


[root@server mysql]# mkdir data   # 创建用于存放MySQL数据文件目录

# 设置mysql目录的账户及工作组,生产环境中不要使用root	
[root@server mysql]# chown -R mysql:mysql /usr/local/mysql 

[root@master mysql]# ll /usr/local/mysql/
总用量 316
drwxr-xr-x  2 mysql mysql   4096  7月 13  2024 bin
drwxr-xr-x  7 mysql mysql   4096  5月 24 20:05 data
drwxr-xr-x  2 mysql mysql   4096  7月 13  2024 docs
drwxr-xr-x  3 mysql mysql   4096  7月 13  2024 include
drwxr-xr-x  6 mysql mysql   4096  7月 13  2024 lib

/usr/local/mysql → 程序本体文件夹

初始化软件
复制代码
[root@server mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data # 注意:需要复制密码

[root@server mysql]# bin/mysqld_safe --user=mysql &  # 使用后台方式以mysql用户身份启动 MySQL 服务器,mysqld_safe 是一个用于启动和监控 MySQL 服务器的脚本

# 注意:此时上述命令执行完毕处于后台运行状态,需要另行启动一个终端

[root@server ~]# ps  -ef | grep  mysql   # 查看进程运行状态

[root@server ~]# cd /usr/local/mysql

[root@server ~]# bin/mysql -u root -p   # 登录,可能报错

# 报错,需要找到下面的文件进行软连接
[root@server ~]# ln -s /usr/lib64/libncurses.so.6.3 /usr/lib64/libncurses.so.5

[root@server ~]# ln -s /usr/lib64/libtinfo.so.6.3 /usr/lib64/libtinfo.so.5

[root@server ~]# bin/mysql -u root -p
Enter password:   # 粘贴之前的初始密码

mysql> alter  user 'root'@'localhost'  identified  with  mysql_native_password by '123456';  修改密码

mysql> flush privileges;   # 刷新

mysql> use mysql;  # 查看账户信息

mysql> select user, host, plugin from mysql.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)

mysql>exit

[root@server ~]# ps -ef | grep mysql

[root@server ~]# kill  -9  pid号   # 在当前终端关闭运行的mysql
设置mysql的配置文件
复制代码
# 回到之前的终端,敲一个回车,显示进程以杀死
# /etc/my.cnf  是 MySQL 的主配置文件,所有重要参数都在这里设置,比如
数据库端口(默认 3306)
字符集(utf8)
数据存放路径
内存大小
日志路径
开机启动配置
连接数...
[root@server mysql]# vim /etc/my.cnf  # 新建配置文件,输入以下内容:
[client]      # 客户端设置
port = 3306   # 默认端口号
socket = /tmp/mysql.sock   # 启动套接字 

[mysqld]
port = 3306    # 端口号 3306
basedir = /usr/local/mysql        # mysql安装根目录
datadir = /usr/local/mysql/data     # mysql数据文件所在位置 没有改目录则创建
tmpdir = /tmp                       # 临时目录 比如load data infile会用到
socket = /tmp/mysql.sock             # 设置socke文件所在目录
character-set-server = utf8mb4      #数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
collation-server = utf8mb4_general_ci
default-storage-engine=INNODB
log_error = error.log   #数据库错误日志文件
配置启动脚本

root@master \~# vim /usr/lib/systemd/system/mysql.service

cpp 复制代码
[Unit]
Description=MySQL Server        #服务描述
Documentation=man:mysqld(8)     #服务文档链接
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html          # 官方文档
After=network.target  # 服务启动顺序,确保网络启动
After=syslog.target   # 服务启动顺序,确保日志服务已启动
[Install]
WantedBy=multi-user.target  # 当系统进入多用户模式时(即大多数服务都已经启动),MySQL 服务应该被启动。
[Service]
User=mysql           # 运行用户
Group=mysql          # 运行组
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf     # 启动服务的命令,并指定配置文件
LimitNOFILE = 5000   # 设置操作系统默认允许mysql进程最大打开文件的数量


# 注意:需要删除注释部分

启动服务

cpp 复制代码
[root@master ~]# systemctl daemon-reload
[root@master ~]# systemctl enable --now mysql.service
设置mysql命令识别

二进制包(.tar.gz)安装 MySQL,默认不会把 mysql/mysqld 等命令加入系统 "全局路径",所以必须手动让系统能找到这些命令,否则只能进 bin 目录才能执行,很麻烦。

下面用最简单的话讲明白原理和为什么要做:

  1. 为什么二进制包需要 "设置命令识别"?

Linux 系统有个规则:

  • 你敲一个命令(比如 lscdmysql
  • 系统只会去 PATH 环境变量里写好的目录 里找这个程序

MySQL 二进制包解压后,程序都在:/usr/local/mysql/bin/

这个目录默认不在系统 PATH 里

所以:

  • 直接敲:mysql -u root -pcommand not found
  • 必须进到目录:cd /usr/local/mysql/bin 再敲 ./mysql 才能用
cpp 复制代码
[root@server ~]# vim  ~/.bash_profile   # 设置环境变量需添加如下语句

设置mysql命令识别

立刻生效你刚修改的环境变量配置文件,不用重启服务器!

cpp 复制代码
[root@server ~]# source ~/.bash_profile

用 root 管理员账号,登录 MySQL 数据库!

cpp 复制代码
[root@server ~]# mysql  -uroot -p
Enter password:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

mysql> exit
相关推荐
360智汇云39 分钟前
Valkey 9.1上线:从Redis兼容到AI数据能力探索
数据库
标致的自行车1 小时前
Entity Framework之问题收集
jvm·数据库·oracle
啵啵鱼爱吃小猫咪1 小时前
Franka机械臂安装实时内核
数据库·postgresql
今天也是元气满满的一天呢2 小时前
从单机架构到负载均衡的互联网架构全流程
数据库·系统架构
SelectDB2 小时前
快手 AB 场景提速 145 倍,从 Spark 到 Apache Doris 的加速实践
数据库·spark·开源
SelectDB2 小时前
阶跃星辰 Agent 可观测实践:为什么 Trace 数据底座选择 SelectDB?
大数据·数据库·agent
冷静的楼房2 小时前
使用ThreadPool发起同步的调用
数据库
一个天蝎座 白勺 程序猿2 小时前
自动SQL优化实战|吃透调优接口+报告配置+统计+索引全流程落地
数据库·sql·sql优化
TDengine (老段)2 小时前
# TDengine TMQ 最佳实践 — 可靠消费、容错与监控
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
杨云龙UP3 小时前
Windows SQL Server 备份无法传输至异地共享目录排查处理
运维·服务器·数据库·windows·共享·smb·异地备份传输