什么是数据库
- 描述事物的符号记录,可以是数字、文字、图形、图像、声音、语言等,数据有多种形式,他们都可以经过数字转化后存入计算机。
数据库
- 存储数据的仓库,是长期存放在计算机内,有组织、可共享的大量数据的集合。数据库中的数据按照一定数据模型组织、描述和存储,具有较小的冗余度,较高的独立性和易扩展性,并为各种用户共享,总结为以下几点:
- 数据结构化
- 数据的共享性高冗、余度低、易扩充
- 数据独立性高
- 数据由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 目录才能执行,很麻烦。
下面用最简单的话讲明白原理和为什么要做:
- 为什么二进制包需要 "设置命令识别"?
Linux 系统有个规则:
- 你敲一个命令(比如
ls、cd、mysql) - 系统只会去 PATH 环境变量里写好的目录 里找这个程序
MySQL 二进制包解压后,程序都在:/usr/local/mysql/bin/
但 这个目录默认不在系统 PATH 里。
所以:
- 直接敲:
mysql -u root -p→ command 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