二进制包安装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
相关推荐
火山上的企鹅16 小时前
Codex实战:APP远程升级服务搭建(三)后台管理页面(APK 上传、版本管理、多应用页签)
服务器·网络·数据库·oracle·qgc
阿狸猿16 小时前
论 NoSQL 数据库技术及其应用
数据库·nosql
FBI HackerHarry浩16 小时前
DataGrip2023.2.3默认保存的数据库和.sql文件在哪里?怎么修改默认路径?
数据库
袁小皮皮不皮16 小时前
3.HCIP OSPF补充知识(优化版)
服务器·网络·数据库·网络协议·智能路由器
运筹vivo@17 小时前
Python ContextVar 底层机制与内存模型拆解
前端·数据库·python
志栋智能17 小时前
超自动化巡检:知识沉淀与团队协作的新载体
大数据·运维·网络·数据库·人工智能·自动化
syt_biancheng17 小时前
Redis初识
数据库·redis·缓存
cmes_love18 小时前
股票逐笔level2历史行情下载十档订单薄五档tick分钟下载分享
数据库·区块链
仙俊红18 小时前
SQL 调优需要掌握的知识
数据库·sql
fofantasy19 小时前
NSK LH12AN 微型导轨技术手册
运维·网络·数据库·经验分享·规格说明书