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

linux下MySQL安装与卸载

MySQL5.7安装

进到root用户

 sudo -i

安装目录

[root@localhost/]# cd /usr/local/

下载解压安装包

下载mysql5.7.35版本的安装包

1 [root@localhost local]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz

解压安装包

1 [root@localhost local]#tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz

配置

重命名为mysql目录

[root@localhost local]#mv mysql-5.7.35-linux-glibc2.12-x86_64/ mysql

创建mysql用户组和用户

[root@localhost local]# groupadd mysql[root@localhost local]# useradd -r -g mysql mysql[root@localhost local]# groups mysql[root@localhost local]# cd mysql/

创建目录

[root@localhost mysql]# mkdir data

赋权

[root@localhost mysql]# chown -R mysql:mysql ./

 配置my.cnf

[root@localhost mysql]# vim /etc/my.cnf

打开配置文件(只读O 编辑E 恢复R 删除D 推出Q 终止A)

vi /etc/my.cnf

配置内容

[mysqld]bind-address=0.0.0.0
port=3306
user=mysql
basedir=/root/mysql
datadir=/root/mysql/data
socket=/tmp/mysql.sock
log-error=/root/mysql/data/mysql.err
pid-file=/root/mysql/data/mysql.pid
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
max_connections=512
lower_case_table_names=1
default-time-zone = '+8:00'
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
log-bin=mysql-bin
binlog-format=ROW
server_id=1

编辑页dd删除内容 esc键退出    :wq保存退出   :wq!强制退出

初始化 MySQL

初始化数据库
sudo /root/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql

验证步骤

检查新目录权限:

ls-ld /var/lib/mysql

应该显示:drwxr-x--- 2 mysql mysql 4096 Jul 3 10:00 /var/lib/mysql

检查配置文件:

grep-E'datadir|log-error|pid-file' /etc/my.cnf

应该显示新路径:

datadir=/var/lib/mysql

log-error=/var/lib/mysql/mysql.err

pid-file=/var/lib/mysql/mysql.pid

查看初始化密码
sudo cat /var/lib/mysql/mysql.err | grep temporary
安装缺失的依赖库

(在较新 Linux 发行版上安装旧版 MySQL 时会出现系统缺少 MySQL 运行所需的库文件)

sudo yum install ncurses-compat-libs

验证安装

ldconfig -p | grep libncurses.so.5
进入MySQL
/root/mysql/bin/mysql -u root -p'密码'
修改密码

1.先设置一个符合要求的临时密码(满足复杂度要求)

ALTER USER 'root'@'localhost' IDENTIFIED BY 'TempPass123!';

2.刷新权限

FLUSH PRIVILEGES;

3.退出当前会话

EXIT;

4.用新密码重新登录

/root/mysql/bin/mysql -u root -p'TempPass123!'

5.设置简单密码

SETGLOBAL validate_password_policy=LOW;
ALTERUSER'root'@'localhost' IDENTIFIED BY'020103';

卸载数据库

 停止 MySQL 服务
/root/mysql/support-files/mysql.server stop
删除 MySQL 安装文件
rm -rf /root/mysql
删除 MySQL 数据目录
rm -rf /var/lib/mysql
 删除配置文件
rm -f /etc/my.cnf
rm -f /etc/my.cnf.rpmsave  # 如果存在
清理相关文件
rm -f /tmp/mysql.sock
rm -f /var/log/mysqld.log
删除 MySQL 用户和组
userdel-r mysql
groupdel mysql

验证用户是否已经删除

id mysql

输出id:mysql:no such user 则删除用户成功

MySQL8.0安装(系统包管理器安装)

RPM

RPM‌是一种Linux系统的软件包管理工具,‌对软件包进行安装、‌升级、‌卸载和查询等操作。

yum

Yum(Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

YUM相当于在PRM基础上进行了封装,使用YUM后底层还是调用PRM进行包安装。

yum常用命令
  1. 1. 列出所有可更新的软件清单命令:yum check-update
  2. 2. 更新所有软件命令:yum update
  3. 3. 仅安装指定的软件命令:yum install <package_name>
  4. 4. 仅更新指定的软件命令:yum update <package_name>
  5. 5. 列出所有可安裝的软件清单命令:yum list
  6. 6. 删除软件包命令:yum remove <package_name>
  7. 7. 查找软件包命令:yum search <keyword>
  8. 8. 清除缓存命令:
    • yum clean packages: 清除缓存目录下的软件包
    • yum clean headers: 清除缓存目录下的 headers
    • yum clean oldheaders: 清除缓存目录下旧的 headers
    • yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers

安装

安装MySQL包
sudo yum install mysql
安装MySQL 服务器
sudo yum install mysql-server
启动 MySQL 服务
sudo systemctl start mysqld
检查服务状态
sudo systemctl status mysqld

正常状态应显示 active (running)

安全初始化
sudo mysql_secure_installation

设置开机子启MySQL

systemctl enable mysql

登录 MySQL

mysql -u root -p
创建新用户
CREATE USER '账号'@'localhost' IDENTIFIED BY'密码';

‘localhost’本地访问 ‘%‘允许远程访问

授予用户所有权限
GRANT ALL PRIVILEGES ON . TO '账号'@'localhost';
刷新权限
FLUSH PRIVILEGES;
验证
检查用户是否创建成功
SELECT User, Host FROM mysql.user WHERE User = '账号';
检查权限是否生效
SHOW GRANTS FOR '账号'@'localhost';
查看所有用户(管理员)
SELECT User, Host FROM mysql.user;

系统内置用户

mysql.session它是供MySQL内部服务使用的系统账户

mysql.sys性能监控 数据库对象的安全执行上下文

mysql.infoschema可以查询数据库和表的元数据信息

修改用户密码(管理员)
ALTER USER '账号'@'localhost'  IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;

删除MySQL8.0

停止服务
sudo systemctl stop mysqld
卸载相关包
sudo rpm-e--nodeps\mysql-server-8.0.41-1.0.1.module+an8.9.0+11301+a97b87fb.x86_64 \mysql-8.0.41-1.0.1.module+an8.9.0+11301+a97b87fb.x86_64 \mysql-common-8.0.41-1.0.1.module+an8.9.0+11301+a97b87fb.x86_64 \mysql-errmsg-8.0.41-1.0.1.module+an8.9.0+11301+a97b87fb.x86_64
清理残留文件和目录
sudo rm-rf /var/lib/mysql /etc/my.cnf* /root/mysql
验证完全卸载
rpm-qa| grep-i mysql

http://www.xdnf.cn/news/1333225.html

相关文章:

  • Tomcat 性能优化终极指南
  • 餐饮灶头:后厨效率与菜品稳定的核心载体
  • Linux《进程间通信(下)》
  • 海量数据测试指南与实战
  • 【PostgreSQL内核学习:WindowAgg 节点对 Tuplestore 的复用机制】
  • 超大型公共场所的智慧守护者——人脸动态识别与管理系统
  • Temu美国站大规模扫号封店:虚假本土店遭批量封禁,如何规避?
  • 心路历程-了解网络相关知识
  • 【C2000常见问题】当板子处于强电噪声环境下,或带重载时C2000芯片的PWM发波会出现异常,导致炸管。
  • Vue2封装Axios
  • 8.20网络编程——sqlite3数据库
  • LeetCode 刷题【47. 全排列 II】
  • 【Linux系统】匿名管道以及进程池的简单实现
  • 在 React 中,​父子组件之间的通信(传参和传方法)
  • 大语言模型研究进展
  • Elasticsearch 写入全链路:从单机到集群
  • sfc_os!SfcValidateCatalogs函数分析之syssetup.inf中的[ProductCatalogsToInstall]
  • ansible playbook 实战案例roles | 实现基于 IHS 的 AWStats 访问监控系统
  • 第R6周:LSTM实现糖尿病探索与预测
  • [特殊字符] 小豆包 API 聚合平台:让 AI 接入更简单、更高效
  • 【数据结构之二叉树】
  • 【0基础PS】图片格式
  • Java常用类:编程世界的瑞士军刀
  • Web网站的运行原理1
  • JAVA:MyBatis 核心组件详解的技术指南
  • Mac电脑 Pixelmator Pro 专业图像处理【媲美PS】
  • 基于FPGA的实时图像处理系统(2)——VGA显示彩条和图片
  • 简笔成画:让AI绘画变得简单而有趣
  • 国产化PDF处理控件Spire.PDF教程:如何使用 Python 添加水印到 PDF
  • Map 和 Set