文章目录
- Ubuntu
- 什么是Ubuntu
- 概述
- Ubuntu版本简介
- 桌面版
- 服务器版
- 部署系统
- 新建虚拟机
- 安装系统
- 部署后的设置
- 设置root密码
- 关闭防火墙
- 启用允许root进行ssh
- 安装所需软件
- 制作快照
- 网络配置
- Netplan概述
- 配置详解
- 配置文件
- DHCP
- 静态IP设置
- 软件安装
- 方法
- apt安装软件
- 作用
- 常用命令
- 配置apt源
- deb软件包安装
- 概念
- dpkg命令
- openEuler简介
- 概述
- 架构
- OpenEuler和主流OS的关系
- 信创与国产操作系统
- 安装OpenEuler
- 下载
- 创建虚拟机实例
- 虚拟网络编辑器
- OpenEuler22.03操作系统的安装部署
- 配置OpenEuler22.03
- 网络配置
- 可视化配置
- 格式
- 实验
- nmcli命令
- 格式:
- 查看网卡信息:
- 激活网卡和关闭连接
- 添加网络连接
- 修改网络连接
- 删除网络连接
- MySql服务
- 什么是数据库
- 数据:
- 数据库:
- mysql概述
- 版本及下载
- yum仓库安装
- 添加yum源
- 安装
- 本地RPM包安装
- 使用迅雷下载集合包
- 上传数据
- 安装
- 生产环境中使用通用二进制包安装
- 作用
- 软件包下载
- 使用xftp将软件包上传到根目录
- 解压缩
- 使用前的准备
- 初始化软件
- 设置mysql的配置文件
- 配置启动脚本
Ubuntu
# 配置apt下载源
root@ubuntu:~# vim /etc/apt/sources.list
deb [check-date=no] file:///cdrom noble main restricted
deb http://mirrors.aliyun.com/ubuntu/ noble main restricted
什么是Ubuntu
概述
- Ubuntu(乌班图)属于Debian系列,Debian是社区类Linux的典范,是迄今为止最遵循GNU规范 的Linux系统。
- Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable、testing 和 unstable。
- Debian最具特色的是apt-get / dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。
- Ubuntu Server是Ubuntu操作系统的一个版本,是Ubuntu家族的一员,被工程设计作为互联网的骨干系统,Ubuntu Server为公共或私有数据中心带来经济和技术上的可扩展性。
Ubuntu版本简介
桌面版
- 网址:https://cn.ubuntu.com/download
- 桌面版是带有GUI界面、面向普通用户使用的操作系统,预装了可帮助用户执行日常基本活动的软件,如:视频、浏览器、文本处理、电子邮件和多媒体等,对标Windows10操作系统
服务器版
- 服务器版本用于托管网络服务器和数据库等应用程序,是专业人员使用的服务器操作系统
- 注意:
- 一般选择LTS长期更新版,LTS为“长期支持”版本每两年在4月份发布一次。LTS版本是Ubuntu的“企业级”版本,使用得最多。估计95%的Ubuntu安装都是LTS版。
- 可以在开源镜像站点下载,如阿里开源镜像
部署系统
新建虚拟机
安装系统
- 择安装语言,默认 【 English 】,直接回车
- 选择键盘,默认回车
- 安装的服务器版本,如需精简版本选择 【Minimized】最小安装,此处根据需求自行选择,本次安装选择 【 Ubuntu Server 】
- 网络设置,此处默认使用DHCP,回车即可
- Proxy(代理配置),用于访问安装程序环境和已安装系统中的包存储库和snap存储库,不用配置,回车即可
- 配置软件源,建议更改为国内镜像源提高下载速度,也可以直接回车,以后在更改
- 系统分区,选择安装磁盘,直接回车默认自动分配,需要手动分区的话选择 【custom storage layout】。**此次安装选择【Custom storage layout】**进行手动分区,按Tab进行选项选择,按空格键选中选项后回车
- 新建第一个分区:/boot,容量1GB
- 添加第二个分区:/根分区,剩余容量,不填即可
- 设置计算机名、用户名及密码
- your server name:主机名
- pick a useranme:账户名
- 注意:ubuntu默认不能设置root密码,可以安装完毕后,使用命令更改root密码
- 安装OpenSSH Server 服务,空格键选中
- 选择安装其他服务,直接跳过
- 开始系统安装
- 安装完成后选择【Reboot Now】重启系统
- 注意:出现下列报错,表示未找到光驱,回车即可
- 使用之前创建的普通账户登录
部署后的设置
设置root密码
- 由于默认的root用户没有固定密码,则可以通过下列方法更改并切换账户
andy@server:~$ sudo passwd root # 以普通账户登录后执行此命令修改root初始密码
[sudo] password for andy: # 普通账户的密码
New password: # 新的root密码
Retype new password: # 在输入一遍
passwd: password updated successfully
andy@server:~$ su - root # 切换到root账户
Password:
root@server:~#
关闭防火墙
root@server:~# systemctl status ufw # 查看ufw防火墙状态
● ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; preset: enabled)
Active: active (exited) since Sat 2023-12-02 07:55:04 UTC; 13min ago
Docs: man:ufw(8)
Main PID: 624 (code=exited, status=0/SUCCESS)
CPU: 1ms
root@server:~# systemctl stop ufw
root@server:~# systemctl disable ufw
启用允许root进行ssh
root@server:~# vim /etc/ssh/sshd_config
PermitRootLogin 的参数设为yes
root@server:~# systemctl restart ssh # 注意服务接口为ssh
安装所需软件
root@server:~# apt install tree gcc make net-tools openvswitch-switch -y
制作快照
网络配置
Netplan概述
-
Netplan —— 抽象网络配置生成器 ,是一个用于配置 Linux网络的简单工具。
-
通过 Netplan ,你只需用一个 YAML文件描述每个网络接口需要配置成啥样即可。 根据这个配置描述, Netplan 便可帮你生成所有需要的配置,不管你选用的底层管理工具是啥
-
Netplan 的特点和功能:
- YAML 语法:Netplan 使用 YAML 文件格式来描述网络配置信息。YAML 格式旨在使文件易于编写、阅读和理解。您可以在每行结束时添加注释以方便自己和其他管理员查看文件。
- 多种网络选项:Netplan 支持多种网络选项,包括 IP 地址、子网掩码、网关、DNS 设置、静态路由和 DHCP 客户端等。您可以根据需要选择所需的选项并将其添加到配置文件中。
- 支持多个网络接口:Netplan 支持管理多个网络接口。无论您使用有线或无线网络,或者使用虚拟网络接口,都可以在配置文件中指定各个接口的设置。
- 自动应用配置:当您修改 Netplan 配置文件后,Netplan 会自动将其应用到相应的网络接口上。这意味着您无需手动执行命令即可生效所做的更改。
- 兼容性:Netplan 可以与旧版网络管理工具共存,并且可以在 Ubuntu 16.04 及更高版本上运行。如果您已经使用 ifupdown 或 NetworkManager 进行网络配置,您可以继续使用这些工具,或者将其与 Netplan 配置文件结合使用。
-
Netplan目前支持以下两种 网络管理工具 :
- NetworkManager
- Systemd-networkd
- 一言以蔽之,从前你需要根据不同的管理工具编写网络配置,现在 Netplan将管理工具差异性给屏蔽了。 你只需按照 Netplan规范编写 YAML 配置,不管底层管理工具是啥,一份配置走天下!
配置详解
配置文件
# 默认配置文件:/etc/netplan/*.yaml
# 本机
root@server:~# vim /etc/netplan/50-cloud-init.yaml
DHCP
network:
ethernets:
ens32:
dhcp4: true
version: 2
静态IP设置
- 注意:netplan 说明文件格式存储在下列路径下,该目录下有各种样例文件,可以提供帮助
root@server:~# cd /usr/share/doc/netplan/examples/
root@server:/usr/share/doc/netplan/examples# ls
bonding_router.yaml infiniband.yaml sriov_vlan.yam ……
# 静态IP范例
root@server:/usr/share/doc/netplan/examples# cat static.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0: # 网卡名
addresses:
- 10.10.10.2/24 # 静态IP地址/子网掩码
nameservers:
search: [mydomain, otherdomain] # 域名
addresses: [10.10.10.1, 1.1.1.1] # DNS解析地址1 , DNS解析地址2
routes:
- to: default
via: 10.10.10.1 # 网关地址
- 查看本机IP信息
# IP and netmask:
root@server:~# ifconfig ens32 # IP:192.168.48.151
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.48.151 netmask 255.255.255.0 broadcast 192.168.48.255
inet6 fe80::20c:29ff:fee1:522e prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:e1:52:2e txqueuelen 1000 (Ethernet)
RX packets 52971 bytes 74147184 (74.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11760 bytes 744059 (744.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# gateway: 192.168.48.2
root@server:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.48.2 0.0.0.0 UG 100 0 0 ens32
# DNS:114.114.114.114
- 设置
root@server:~# vim /etc/netplan/50-cloud-init.yaml
# 清除已有内容,将静态IP范例文件内容拷贝到当前配置中,在修改,注意缩进格式
network:
ethernets:
ens32:
dhcp4: no
addresses: [192.168.48.150/24]
routes:
- to: default
via: 192.168.48.2
nameservers:
addresses: [114.114.114.114]
version: 2
- 生效
root@server:~# netplan apply
软件安装
方法
-
使用 apt 工具安装
-
deb 软件包安装
-
自己下载程序源码编译安装
apt安装软件
作用
- Apt (Advanced package tool) 是一个命令行包命令行包管理工具,适用于 Ubuntu / Debian Linux。
- Apt 用于在 Ubuntu / Debian 系统中从命令行安装、删除、更新和升级 Debian 包。Apt 克服了在 apt-get 命令中注意到的问题和错误。使用 apt 命令时,用户必须具有 sudo 权限
常用命令
apt update : 更新软件仓库信息,建议在安装或升级包之前执行该命令
apt list : 列出所有可用的软件包
apt list --installed :只列出已安装的包
apt list --upgradeable :只列出可升级的包
apt install 软件包名 -y :安装新软件包
apt download 软件包名 : 下载软件包而不安装
apt remove 软件包名 : 删除软件包
apt upgrade : 升级所有软件包
apt install 包名 --only-upgrade : 要升级特定的安装包
apt full-upgrade : 全面系统升级,请务必小心,因为它可能会删除已安装的软件包并安装更新的软件包
apt search 软件包名 : 搜索软件包
apt show nginx : 查看软件包信息
apt clean : 清除apt缓存
配置apt源
- 配置文件:
/etc/apt/sources.list
- 推荐的源
序 号源 地址
1 阿里 http://mirrors.aliyun.com/ubuntu/
2 网易 http://mirrors.163.com/ubuntu/
3 搜狐 http://mirrors.sohu.com/ubuntu/
4 华为云 http://repo.huaweicloud.com/ubuntu/
5 中国官方 http://cn.archive.ubuntu.com/ubuntu/
6 官方 http://archive.ubuntu.com/ubuntu/
7 清华 http://mirrors.tuna.tsinghua.edu.cn/ubuntu/
8 中科大 http://mirrors.ustc.edu.cn/ubuntu/
- 修改:
- 打开文件:vim /etc/apt/sources.list
- 将默认的http://archive.ubuntu.com/ , 替换为 mirrors.aliyun.com ,如:
- 最后需要更新软件列表:
root@server:~# apt update
deb软件包安装
概念
- deb包是Debian,Ubuntu等Linux发行版的软件安装包,扩展名为.deb,是类似于rpm的软件包。
dpkg命令
- 格式:
dpkg [<选项> ...] <命令>
- 常用命令
dpkg -i 包名 : 安装软件包
dpkg -I 包名 : 查看软件包的详细信息(软件名称、版本以及大小等)
dpkg -c 包名 : 查看软件包结构
dpkg -r 包名 : 卸载软件包
- 注意:不推荐使用deb软件包,因为要解决软件包依赖问题,安装也比较麻烦。
openEuler简介
概述
openEuler的前身是运行在华为公司通用服务器上的操作系统EulerOS。
EulerOS是一款基于Linux内核的开源操作系统,支持X86和ARM等多种处理器架构,伴随着华为公司鲲鹏芯片的研发,EulerOS 理所当然地成为与鲲鹏芯片配套的软件基础设施。2019年底,EulerOS被正式推送至开源社区,更名为openEuler。
当前openEuler内核源于Linux,支持鲲鹏及其他多种处理器,能够充分释放计算芯片的潜能,是由全球开源贡献者构建的高效、稳定、安全的开源操作系统,适用于数据库、大数据、云计算、人工智能等应用场景。
openEuler是一个面向全球的操作系统开源社区,通过社区合作,打造创新平台,构建支持多处理器架构、统一和开放的操作系统,推动软硬件应用生态繁荣发展。
架构
OpenEuler和主流OS的关系
信创与国产操作系统
“信创”计划,全称是“信息技术应用创新计划”,旨在通过推广自主可控的信息技术,提高国家信息安全的保障能力和综合国力
安装OpenEuler
下载
- 网址:https://www.openeuler.org/zh/download/archive/
- 版本选择:openEuler 22.03 LTS SP3 ,即长期更新版,其使用linux内核版本如下图:
- 选择基本ISO版本:
创建虚拟机实例
- 第一步:文件菜单->新建虚拟机->典型->下一步
- 第二步:稍后安装操作系统
- 第三步:选择操作系统类型,由于OpenEuler22.03 LTS SP3使用Linux5.10内核则选择如下:
- 第四步:命名虚拟机
- 第五步:设置磁盘空间,根据虚拟机安装要求设置,如下:
- 设置32G,动态空间申请,设置为单个文件
- 第六步:自定义硬件,设置硬件参数
- 第七步:设置自定义硬件
- 内存:推荐2GB
- 处理器:1颗、2核心
- 新CD/DVD:适应ISO映像文件,点击浏览按钮,选择之前下载好的openEuler-22.03-LTS-SP2-x86_64-dvd.iso镜像文件
- 网络适配器:选择NAT模式
- 显示器:去掉"加速3D图形“的对钩
- 最终:
- 选择关闭、完成
虚拟网络编辑器
-
位置:vmware-> 编辑菜单->虚拟网络编辑器
-
作用:设置虚拟网卡的连接模式以及网段、IP、DNS、网关
-
方法:先点击上边的网络模式,在选择下方的设置按钮,一般需要查看“NAT设置”的网关地址以及最下方的网段地址
OpenEuler22.03操作系统的安装部署
-
使用鼠标点击黑色界面进入OpenEuler22.03系统,通过ctrl+alt可以释放鼠标焦点回到Windows
-
通过键盘方向键选择第一项Install openEuler 22.03-LTS-SP2 选项进行安装系统
-
选择语言:中文或英文
-
安装信息摘要设置
-
安装目的地:显示安装位置,一般为硬盘,点击自定义,在点击“完成”进行分区:
/boot:系统启动分区,推荐500M或1GB
swap:交换分区,4G
/:根分区,期望容量省略,表示将剩余空间全部分配
方法:点击下图的加号,设置挂载点及期望容量(重复多次),点击完成,点击接收更改
- 网络和主机名:打开网卡连接
- root账户密码设置:密码为OPENlab123
- 创建用户:创建一个普通账户fox,设置密码:OPENlab123
- 安装完成后点击"重启系统"
配置OpenEuler22.03
- 登录
- 账户:root
- 密码:OPENlab123
-
xshell7建立连接
-
关闭防火墙及SELinux
[root@server ~]# vi /etc/selinux/config
[root@server ~]# systemctl stop firewalld # 关闭防火墙
[root@localhost ~]# systemctl disable firewalld # 取消开机启动
- 修改主机名
[root@localhost ~]# hostnamectl set-hostname server # server为主机名
[root@server ~]# reboot # 重启
- 修改root密码
[root@server ~]# passwd root
更改用户 root 的密码 。
新的密码:
无效的密码: 密码少于 8 个字符
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
- 查看yum源
[root@server ~]# cat /etc/yum.repos.d/openEuler.repo
[root@server yum.repos.d]# yum makecache # 制作缓存
- 查看网卡配置文件
[root@server ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32
- 下载所需软件
[root@server ~]# yum install vim make gcc tree net-tools tar -y
- 测试
[root@server ~]# cat /etc/os-release # 查看系统信息
[root@server ~]# lscpu # 查看cpu信息
[root@server ~]# free -m # 查看内存信息
[root@server ~]# fdisk -l # 查看磁盘信息
[root@server ~]# top # 查看进程信息
[root@server ~]# ping -c 2 www.qq.com
- 制作快照:虚拟机菜单->快照->拍摄快照->命名为“初始”->拍摄
- 使用虚拟机进行克隆,命名为node1,启动后后需要更改主机名,重启生效,重新制作node1的快照
- 可以尝试安装桌面环境(可选)
# DDE是统信软件团队研发的一款功能强大的桌面环境
[root@server ~]# yum install dde -y # 安装包容量较大,建议课后进行
[root@server ~]# systemctl set-default graphical.target # 设置以图形界面方式启动
[root@server ~]# reboot
网络配置
可视化配置
格式
[root@server ~]# nmtui
实验
- 例:为当前网卡增加一个IP地址
[root@server ~]# nmcli c up ens32
[root@server ~]# nmcli c reload
[root@server ~]# ip addr
nmcli命令
格式:
[root@server ~]# nmcli --help
用法:nmcli [选项] 对象 { 命令 | help }
查看网卡信息:
[root@server ~]# nmcli c show
[root@server ~]# nmcli c show 网卡名 # 查看网卡详细信息,点q退出
[root@server ~]# nmcli dev status # 查看已有设备的状态
[root@server ~]# nmcli dev show # 查看所有硬件设备状态
激活网卡和关闭连接
[root@server ~]# nmcli c up 网卡名
[root@server ~]# nmcli c down 网卡名 # 停用连接
添加网络连接
[root@server ~]# nmcli c add type ethernet ifname ensens32 con-name ens33 autoconnect yes ip4 192.168.48.135/24 gw4 192.168.48.2
[root@server ~]# nmcli c up ens161 # 激活
[root@server ~]# nmcli c show
- 命令解释
- 关键字:nmcli c add type
- 网络类型:ethernet
- 现有网卡名:ifname ens32
- 新网络名称:con-name ens33
- 开启自动连接:autoconnect yes
- 新连接的IP地址与网关地址:ip4 192.168.48.135/24 gw4 192.168.48.2
修改网络连接
- 例:通过ens32连接设置静态ip地址:
[root@server ~]# nmcli c mod ens32 ipv4.method manual ipv4.addresses '192.168.48.150/24' ipv4.gateway '192.168.48.2' ipv4.dns '114.114.114.114'
[root@server ~]# nmcli c up ens32 # 激活
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)
[root@server ~]# ip a # 查看结果
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:dc:cf:14 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.48.150/24 brd 192.168.48.255 scope global noprefixroute ens160
-
ipv4.method manual :手动获取(静态)
-
通过配置文件查看和编辑:
[root@server ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens32
UUID=b50354dd-8e11-4494-9072-a152ea6b0783
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.48.130
PREFIX=24
GATEWAY=192.168.48.2
DNS1=114.114.114.114
删除网络连接
[root@server ~]# nmcli c show # 查看网络连接
[root@server ~]# nmcli c del ens32 # 删除
[root@server ~]# nmcli c show # 再次查看
- 以上做完之后需要恢复快照
MySql服务
什么是数据库
数据:
- 描述事物的符号记录, 可以是数字、 文字、图形、图像、声音、语言等,数据有多种形式,它们都可以经过数字化后存入计算机。
数据库:
- 存储数据的仓库,是长期存放在计算机内、有组织、可共享的大量数据的集合。数据库中的数据按照一定数据模型组织、描述和存储,具有较小的冗余度,较高的独立性和易扩展性,并为各种用户共享,总结为以下几点:
- 数据结构化
- 数据的共享性高,冗余度低,易扩充
- 数据独立性高
- 数据由 DBMS 统一管理和控制(安全性、完整性、并发控制、故障恢复)
mysql概述
- MySQL是一个小型关系数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被sun公司10亿美金收购。2009年,SUN又被Oracle以74亿美金收购。
- 目前MySQL被广泛地应用在Internet上的中小型网站中。由于体积小、速度快、总体拥有成本低,尤其是开放源代码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
版本及下载
- MySQL数据库存在多种版本,不同的版本在不同的平台上:https://dev.mysql.com/downloads/mysql/
- 也可以选择MySQL对应版本的,找到安装教程,如MySQL5.7为例:https://dev.mysql.com/doc/refman/5.7/en/installing.html
yum仓库安装
添加yum源
-
访问官方:https://www.mysql.com/
-
查看官方教程:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html
-
选择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 # 下载
[root@server ~]# rpm -ivh mysql80-community-release-el8-9.noarch.rpm # 安装
[root@server ~]# yum list | grep mysql
安装
root@server ~]# yum 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!'; # 设置新密码
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包安装
使用迅雷下载集合包
- 进入下载网站:https://downloads.mysql.com/archives/community/
- 如图:
上传数据
- 使用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
生产环境中使用通用二进制包安装
作用
- 二进制包:源码包经过成功编译之后产生的包
- 优点:由于二进制包在发布之前就已经完成了编译的工作,因此用户安装软件的速度较快
- 注意:在生产环境中通用二进制包安装方法较为常用
软件包下载
- 网址:https://dev.mysql.com/downloads/mysql/
- 如图:
- 根据上图系统参数里的glibc版本和cpu架构选择对应的下载选项:
使用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