当前位置: 首页 > article >正文

RHCE的学习(14)

第十一章 MySql服务

什么是数据库

数据:

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

数据库:

  • ==存储数据的仓库==,是长期存放在计算机内、有组织、可共享的大量数据的集合。数据库中的数据按照一定数据模型组织、描述和存储,具有较小的冗余度,较高的独立性和易扩展性,并为各种用户共享,总结为以下几点:

  • 数据结构化

  • 数据的共享性高,冗余度低,易扩充

  • 数据独立性高

  • 数据由 DBMS 统一管理和控制(安全性、完整性、并发控制、故障恢复)

mysql概述

  • MySQL是一个小型关系数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被sun公司10亿美金收购。2009年,SUN又被Oracle以74亿美金收购。

  • 目前MySQL被广泛地应用在Internet上的中小型网站中。由于体积小、速度快、总体拥有成本低,尤其是开放源代码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

版本及下载

  • MySQL数据库存在多种版本,不同的版本在不同的平台上:MySQL :: Download MySQL Community Server

  • 也可以选择MySQL对应版本的,找到安装教程,如MySQL5.7为例:MySQL :: MySQL 5.7 Reference Manual :: 2 Installing and Upgrading MySQL

yum仓库安装

添加yum源

  • 访问官方:MySQL

  • 查看官方教程:MySQL :: MySQL 8.0 Reference Manual :: 2.5.1 Installing MySQL on Linux Using the MySQL Yum Repository

  • 选择downloads页面的:MySQL Community (GPL) Downloads »

  • 选择:MySQL Yum Repository

  • 选择版本后下载yum源,==注意:Euler22版本对应Centos8 即RedHat8==

  • 添加yum源

[root@server ~]# wget  https://dev.mysql.com/get/mysql80-community-release-el8-9.noarch.rpm   # 下载,也可以在Windows上下载然后用xfpt传输
[root@server ~]# rpm -ivh  mysql80-community-release-el8-9.noarch.rpm  # 安装
[root@server ~]# yum  list  |  grep  mysql

安装

root@server ~]# dnf  install  mysql-community-server.x86_64 
​
[root@server ~]# systemctl start mysqld   # 启动,注意有d
​
[root@server ~]# systemctl status mysqld
​
[root@server ~]# grep 'temporary password' /var/log/mysqld.log
2023-07-09T02:38:36.368700Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: qQ6OmpD?8_.f   # 查看初始登录密码
​
[root@server ~]# mysql -u root -p         # 以root身份登录
Enter password:   # 赋值初始登录密码
​
mysql> alter user 'root'@'localhost' identified by 'Admin123!'; # 设置新密码 8.4
mysql> alter user root@localhost identified with mysql_native_password by "Mysql@123";   
​
mysql> show variables like 'validate_password.%';  # 查看密码设置默认的规则
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     | # ON时,账户及密码不能相同 
| validate_password.dictionary_file    |        | # 规则文件保存路径
| validate_password.length             | 8      | # 密码长度
| validate_password.mixed_case_count   | 1      | # 至少要包含大/小写字母的个数
| validate_password.number_count       | 1      | # 至少要包含数字的个数
| validate_password.policy             | MEDIUM | # 密码的验证强度等级
| validate_password.special_char_count | 1      | # 密码中特殊字符个数
+--------------------------------------+--------+
7 rows in set (0.01 sec)
# 默认为中级密码验证规则,密码长度8为,内容至少包含:一个大写字母、一个小写字母、一位数字和一个特殊字符
​
# 若密码不好记忆可以调低密码验证等级,在设置简单的密码,但生产中不推荐
mysql> set global validate_password.policy=low;
​
mysql> set global validate_password.length=6;
​
mysql> alter user 'root'@'localhost'  identified  by  '123456';
​
mysql> exit
Bye
​
[root@server ~]#  mysql -u root -p
Enter password:       # 密码为123456
mysql> show databases;    # 注意s和分号结尾
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
​
mysql> show global variables like 'port';      # 查看默认端口号
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+------+
1 row in set (0.00 sec)
​
mysql> quit
Bye

本地RPM包安装

使用迅雷下载集合包

  • 进入下载网站:MySQL :: Download MySQL Community Server (Archived Versions)

  • 如图:

上传数据

  • 使用xftp将下载安装包上传到linux端

安装

[root@server ~]# cd /
[root@server /]# tar -xvf mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar   # 解压
​
[root@server /]# yum localinstall mysql-community-server-8.0.32-1.el9.x86_64.rpm \
mysql-community-client-8.0.32-1.el9.x86_64.rpm \   # 必须,客户端
mysql-community-common-8.0.32-1.el9.x86_64.rpm \   # 必须,公共库
mysql-community-icu-data-files-8.0.32-1.el9.x86_64.rpm  \  # 必须,支持正则表达式的icu数据文件
mysql-community-client-plugins-8.0.32-1.el9.x86_64.rpm \   # 必须,客户端共享插件
mysql-community-libs-8.0.32-1.el9.x86_64.rpm       # 不必须,开发库,开发跟MySql有关的C/C++ 项目时则需要
​
[root@server /]# cd ~
​
[root@server ~]# systemctl start mysqld
​
[root@server ~]# systemctl status mysqld  # 查看状态
​
[root@server ~]# mysql -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)  # 密码错误,需要重置密码
​
[root@server ~]# grep password /var/log/mysqld.log   # 查询初始密码
2023-02-09T03:55:47.305118Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: q&2PO.yJZ+Hp
# q&2PO.yJZ+Hp为密码,需要复制
​
[root@server ~]# mysql -u root -p
Enter password:   # 粘贴之前的密码
​
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.   # 提示需要修改默认密码
​
mysql> alter user 'root'@'localhost' identified by 'MyNewPass1!'; # 修改密码
Query OK, 0 rows affected (0.01 sec)
​
mysql> exit
Bye

生产环境中使用通用二进制包安装 配置 编译 安装

作用

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

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

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

软件包下载

  • 网址:MySQL :: Download MySQL Community Server

  • 如图:

使用xftp将软件包上传到根目录

解压缩

[root@server ~]# cd  /
​
[root@server /]# tar xvf mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar
​
# 解压缩后有三个子包
# mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz:安装mysql必须的文件
# mysql-router-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz:官方提供的一个轻量级中间件,主要作用是在应用程序与MySQL服务器之间提供透明的路由方式,是高可用性 (HA) 解决方案的构建块
# mysql-test-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz:测试框架,用于做mysql 服务的单元,回归和一致性测试,并提供了运行单元测试和创建新单元测试的工具
# 继续解压缩
[root@server /]# tar xvf mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz
[root@server /]# ls

使用前的准备

[root@server /]# mv mysql-8.0.33-linux-glibc2.17-x86_64-minimal /usr/local/mysql  # 移动到默认安装目录,也可自行修改
​
[root@server /]# cd /usr/local/mysql   
​
[root@server mysql]# groupadd mysql    # 创建名为mysql的用户组
​
[root@server mysql]# useradd -r -g mysql -s /bin/false mysql  # 创建名为 mysql的系统用户,将其添加到mysql用户组中,并设置其登录shell为/bin/false,以限制该用户的登录权限
​
[root@server mysql]# mkdir mysql-files   # 创建一个名为 mysql-files 的目录,用于存放MySQL数据文件,一般存储备份数据
​
[root@server mysql]# chown mysql:mysql mysql-files     # 将mysql-files目录的所有者和所属组设置为mysql用户和组
​
[root@server mysql]# chmod 750 mysql-files    # 设置mysql-files目录的权限为 750,以确保只有 “mysql” 用户组的成员可以读取、写入和执行该目录

初始化软件

[root@server mysql]# bin/mysqld --initialize --user=mysql  # 注意:需要复制密码
[root@server mysql]# bin/mysql_ssl_rsa_setup  # 支持ssl,用于安全通信
[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   /usr/lib64/libncurses.so.5
[root@server ~]# ln -s /usr/lib64/libtinfo.so.6  /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>exit
​
[root@server ~]# ps -ef | grep mysql
[root@server ~]# kill  -9  pid号   # 在当前终端关闭运行的mysql

设置mysql的配置文件

# 回到之前的终端,敲一个回车,显示进程以杀死
[root@server mysql]# vim /etc/my.cnf  # 新建配置文件,输入以下内容:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
server-id = 1
port = 3306
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
tmpdir = /tmp
socket = /tmp/mysql.sock
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'
default-storage-engine=INNODB
log_error = error.log
​
# 注意:以下是上述配置文件的解释
[client]      # 客户端设置
port = 3306   # 默认端口号
socket = /tmp/mysql.sock   # 启动套接字 
​
[mysqld]
###############################基础设置#####################################
server-id = 1      # Mysql服务的唯一编号 每个mysql服务Id需唯一
port = 3306        # 端口号 3306
basedir = /usr/local/mysql     # mysql安装根目录
datadir = /usr/local/mysql/data    # mysql数据文件所在位置 没有改目录则创建
tmpdir = /tmp    # 临时目录 比如load data infile会用到
socket = /tmp/mysql.sock   # 设置socke文件所在目录
#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8mb4
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
default-storage-engine=INNODB
###############################日志设置#####################################
#数据库错误日志文件
log_error = error.log

配置启动脚本

[root@server ~]# cd  /usr/local/mysql/support-files
[root@bogon support-files]# dnf install chkconfig-1.24-1.el9.x86_64 
[root@server support-files]# cp -a mysql.server /etc/init.d/mysql.server # 拷贝启动脚本
[root@server support-files]# cd  /etc/init.d  
[root@server init.d]# vim  mysql.server  # 增加=之后的内容
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
​
[root@server ~]#chkconfig --add mysql.server  添加到开机自启动服务中  
[root@server ~]#chkconfig mysql.server on     开启开机启用
[root@server ~]#systemctl daemon-reload       如果重新修改配置后,重载
​
[root@server ~]# systemctl start mysql
[root@server ~]# vim  ~/.bash_profile   # 设置环境变量需添加如下语句
export PATH=$PATH:/usr/local/mysql/bin
[root@server ~]# source ~/.bash_profile
[root@server ~]# mysql  -uroot -p


http://www.kler.cn/a/385948.html

相关文章:

  • 进程信号
  • 使用Redis的一些经验总结
  • 大数据新视界 -- 大数据大厂之 Impala 性能优化:基于数据特征的存储格式选择(上)(19/30)
  • 海思3403对RTSP进行目标检测
  • 【包教包会】CocosCreator3.x框架——带翻页特效的场景切换
  • 力扣 最长公共前缀-14
  • MAN TruckScenes数据集:第一个用于自动驾驶卡车的大规模多模式数据集。
  • ubuntu中apt-get的默认安装路径。安装、卸载以及查看的方法总结
  • vscode使用之vscode-server离线安装
  • TCP连接如何保障数据传输安全
  • 【C++】哈希表模拟:开散列技术与哈希冲突处理
  • 这是一个bug求助帖子--安装kali 遇坑
  • 【青牛科技】GC5931:工业风扇驱动芯片的卓越替代者
  • Stable Diffusion的解读(一)
  • CS61b part5
  • 【C++】C++的单例模式、跟踪内存分配的简单方法
  • U3D游戏开发之骨骼动画相关
  • Linux内核USB2.0驱动框架分析--USB设备枚举过程
  • 有功功率,无功功率,视在功率,额定功率关系
  • TSMI252012PMX-2R2MT电子元器件详解
  • 理想汽车Android面试题及参考答案
  • 【Linux内核】trigger_load_balance(struct rq *rq)内核函数
  • C 语言学习-05【数组】
  • multiprocessing
  • [MySQL]索引
  • RK3568平台开发系列讲解(字符设备驱动篇)创建设备节点实验