mysql的安装步骤

安装步骤

1.下载软件包,安装依赖环境

2.安装mysql服务器

3.基础安装路径,创用户,与权限

4.初始化

5.添加环境变量,把服务放到开机自启里面

6.启动mysql服务器

7.获取初始密码并且修改

一,下载软件(yum,源码,二进制安装,shell脚本安装,容器化安装(docker一键安装))

1.下载mysql

https://downloads.mysql.com/archives/community/

2.二进制安装

2.1指定安装

将mysql安装到/usr/local/mysql目录中:

做# Centos7安装依赖
yum install -y libaio libaio-devel ncurses ncurses-devel openssl openssl-devel# Ubuntu22.04 安装依赖
sudo apt update
sudo apt install -y libaio1 libaio-dev libtinfo5 libncurses-dev libncurses5 libncurses5-dev libncursesw5 libncursesw5-dev libssl-dev
或者
apt install mysql-server 
mysqladmin -u root password
后直接用# 下载MySQL二进制安装包
# 官网下载
# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz#自己拖包进去
# 局域网内下载
wget http://192.168.56.200/Software/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz做# 解压
tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz #校验是否正确 与官方的对比
md5sum 安装包做#将mysql文件剪切并改名,建议的安装路径/usr/local下
mv mysql-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql做# 不建议用root用户弄数据库所以我们这里,创建mysql用户
useradd mysql -M -s /sbin/nologin做# 创建数据库文件夹
# data文件夹是用于存储数据库文件,他的位置是在mysql目录下
mkdir /usr/local/mysql/data做# 更改mysql目录权限
chown mysql:mysql -R /usr/local/mysql

校验对比,这里安装的是通用版本,适配所有

2.2编译安装

yum -y install ncurses-devel #安装依赖环境
yum -y install perl perl-devel perl-DBD* #看情况安装(安了开发环境就不用了)
拖包
解压缩cmake,并使用cmake工具进行编译安装(其实yum装的cmake也能用)
tar -zxvf ... -C /usr/src
cd ...
./configure
gmake && gmake install
安装完成

3.1初始化数据库:
做#修改MySQL配置文件 
vim /etc/my.cnf原有的配置文件不用管全删[mysqld]
port = 3306
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
socket = /tmp/mysql.sock
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
default-storage-engine=InnoDB
default-authentication-plugin=mysql_native_password
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

sql_mode=NO_ENGINE_SUBSTITUTION:这个设置要求 MySQL 在遇到存储引擎不可用时,直接报错而不是替换成其他可用的存储引擎。

STRICT_TRANS_TABLES:这个设置要求 MySQL 严格遵循事务安全的规则,对于事务中出现警告或错误的操作会导致整个事务回滚。

通过设置这些 SQL 模式,可以帮助确保数据库的数据完整性和一致性,提高数据库操作的准确性和安全性。

做#执行初始化,生成系统自带的初始化数据。

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

做执行完后查看初始密码:

cat /usr/local/mysql/data/error.log
最后一行会显示密码
2025-08-01T01:56:40.744889Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 2VCPj4h!qer(
例如这个,里面的初始密码就是2VCPj4h!qer(
做4.1第一次启动mysql服务(使用官方自带的启动脚本)
/usr/local/mysql/support-files/mysql.server start
执行完上面命令后会有提示
Starting MySQL... SUCCESS!

之后可以将启动脚本复制到/etc/init.d/目录,这是启动脚本的默认目录。

启动MySQl本质执行的是mysqld命令

ps -aux|grep mysqld
查看是否启动

关闭mysql本质是kill mysqld的pid

做 启动(为方便以后命令启用)

另一种把启动命令放到环境变量里面

修改系统环境变量

想要在任意目录执行mysql的命令需要修改/etc/profile(这个文件里写的是重要的环境变量,用于设置全局的环境变量和启动脚本:补充

环境变量设置

  • PATH 变量:用于指定命令的搜索路径。系统会在这些路径中查找用户输入的命令,例如在 /etc/profile 中可能会看到类似 PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 的设置,将常用的命令目录添加到搜索路径中。)

vim /etc/profile

在最后一行添加指定PATH关联MySQL的bin目录

export PATH=$PATH:/usr/local/mysql/bin

配置完成后让系统重新加载/etc/profie文件

source /etc/profile

如何验证上面内容做成功了呢?

他没有显示没有这个命令就是已经将命令加入环境变量中了。这里报错原因是没有输root的密码

我们可以通过 ,登录成功

 mysql -u root -p'2VCPj4h!qer('   #把刚刚的密码粘贴上去 加单引号'

四、获取初始密码

5.2修改root密码

5.2.2.使用随机密码登录到MySQL中修改
mysql -uroot -p
Enter password:初始密码 自己在cat /usr/local/mysql/data/error.log这里找

做# 修改密码

mysql> alter user 'root'@'localhost' identified by '123.com';
Query OK, 0 rows affected (0.05 sec)
可以通过自己改的密码登录,就是成功了
不做5.2.1使用mysqladmin命令修改密码

Mysql安装成功后,默认的密码为随机密码,你可以使用以下命令来创建新的root用户的密码:

mysqladmin -u root -p  password "root123"
Enter password:初始密码
现在你可以通过以下命令来连接到Mysql服务器:mysql -u root -p
Enter password:*******
注意:在输入密码时,密码是不会显示了,你正确输入即可。
不做 如果密码错了或者修改失败后可以进行5.2.3.MySQL重新初始化

安装时初始化失败或初始密码遗失时可以重新初始化

# 删除 /usr/local/mysql/data目录中数据
rm -rf /usr/local/mysql/data/
mkdir /usr/local/mysql/data
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
cd /usr/local/mysql
cat data/error.log# 方法一:
mysqladmin -uroot -p password "root123"
初始密码# 方法二:
mysql -uroot -p
初始密码
mysql> alter user 'root'@'localhost' identified by 'root123';
Query OK, 0 rows affected (0.05 sec)
不做  5.2.4.跳过MySQL的root密码直接登录

忘记root密码时,可以使用该方法

vim /etc/my.cnf[mysqld]
# 配置的最后添加,跳过密码登录的功能
skip-grant-tables# 重启服务
systemctl restart mysqld
mysql -urootmysql>flush privileges;
Query OK, 0 rows affected (0.05 sec)
mysql>alter user 'root'@'localhost' identified by 'root123';
Query OK, 0 rows affected (0.05 sec)
mysql>\q
# 密码修改成功后,必须在配置文件中删除或注释掉skip-grant-tables# 然后重启服务
systemctl restart mysqld

 做  开机自启用systemcl来控制mysql

开机启动、启动、停止、重启、

# 1.方法使用默认启动脚本的路径支持 start 启动 |stop 停止 |restart 重启
/usr/local/mysql/support-files/mysql.server restart# 2./etc/ini.d/mysqld
# 将启动脚本复制到/etc/init.d/目录,这是启动脚本的默认目录。
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld# -a 参数保留原有权限
# 测试重启
/etc/init.d/mysqld restart# 3.service
# 配置好/etc/ini.d/mysqld后可以使用service命令管理服务
service mysqld restart# 4.systemctl
# 配置mysqld开机启动后,可以使用systemctl管理mysqld
systemctl enable  mysqld
systemctl restart mysqld
systemctl status  mysqld

不做6.1设置远程连接

查看数据库的用户权限配置基础信息。

生产环境不推荐开放root用户的远程登录权限;

# 登录MySQL
mysql -uroot -proot123# 创建远程登录账号
mysql> create user 'root'@'%' identified with mysql_native_password by 'root123';
Query OK, 0 rows affected (0.01 sec)# 设置开放权限
mysql> grant all on *.* to 'root'@'%';
Query OK, 0 rows affected (0.00 sec)# 刷新使权限生效
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

%:代表所有主机,允许root登录所有主机

identified:认证授权

mysql_native_password:密码的一种认证方式,用于兼容低版本的mysql

grant:授权

遇到问题:

​Can’t connect to MySQL server on ‘192.168.8.20’ (61)​

解决方法:

# 关闭防火墙
systemctl stop firewalld.service
firewall-cmd --state

验证:

在linux客户端安装mariadb

yum -y install  mariadb

mysql -u root -p 123.com -h 192.168.1.10(MySQL服务器的ip)

在ubuntu客户端

apt install mysql-client

mysql -u root -p 123.com -h 192.168.1.10(MySQL服务器的ip)

apt install  mycli               #更强大的一种客户端 有提示

mycli -u root -p 123.com -h ”192.168.1.10“(MySQL服务器的ip)

图形化:

phpmyadmin

如果你是使用apt直接安装的mysql那么还需要在配置文件中允许远程访问

# 打开mysql配置文件。
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# [mysqld] 表示服务端设置
[mysqld]
# 注释下列内容(31行)
# bind-address          = 127.0.0.1
# mysqlx-bind-address   = 127.0.0.1# 重新设置bind-address
bind-address = 0.0.0.0# 重启MySQL
sudo systemctl restart mysql# 检查3306端口是否为 0.0.0.0:3306
ss -lnutp|grep 3306

navicat 

这里的用户名和密码,就是

create user 'root'@'%' identified with mysql_native_password by 'root123';

和这里的一样。

连接成功后就是这个样子的。

不做  7.1mysql卸载步骤(了解)

# 停止mysql服务
/etc/init.d/mysqld stop
Shutting down MySQL.... SUCCESS!# 或者使用systemctl停止
systemctl stop mysqld# 查找所有mysql相关文件夹
find / -name mysql

不做

# 删除所有查出来的文件夹
rm -rf /var/lib/selinux/targeted/active/modules/100/mysql
......# 删除配置文件
# 配置文件一般有/etc/my.cnf 或/etc/init.d/mysql.server,rm -f /etc/my.cnf
rm -rf /etc/init.d/mysqld# 删除用户组userdel mysql
id mysqlid: “mysql”:无此用户

编译安装步骤

编译安装mysql
yum -y install ncurses-devel #安装依赖环境
yum -y install perl perl-devel perl-DBD* #看情况安装(安了开发环境就不用了)
拖包

安装完成
创建用户和组
groupadd mysql
useradd -M -s /sbin/nologin mysql -g mysql
tar -zxvf mysql-5.6.36.tar.gz -C /usr/src/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql #指定安装目录
-DSYSCONFDIR=/etc #指定初始化参数文件目录 #/etc/my.cnf
-DDEFAULT_CHARSET=utf8 #指定默认使用的字符集编码
-DDEFAULT_COLLATION=utf8_general_ci #指定默认使用的字符集校对规则,utf8_general_ci是适用于utf-8字符集的通用规则
-DWITH_EXTRA_CHARSETS=all #指定额外支持的其他字符集
make && make install
安装完成
更改目录的属主属组
chown -R mysql:mysql /usr/local/mysql
建立配置文件
rm -rf /etc/my.cnf #Centos7默认支持Mariadb,系统默认的my.cnf会和mysql冲突,
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf #再将mysql安装包里的默认配置替换过去
初始化
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ #初始化数据库,用mysql的身份执行初始化脚本install_db,指定各种目录
初始化成功
设置变量环境,让我们mysql的命令可以在任何目录下使用
方法一:
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
查看一下
/etc/profile文件为系统的每个用户设置环境变量信息,此文件的修改会影响到所有用户。
我们会发现最后一行多出了以上内容,$PATH变量定义了运行命令的查找路径
给予运行权限,并执行,我们就可以在任何地方使用mysql的命令了。
source /etc/profile #作用:在当前bash环境下读取并执行文件中的命令。
方法二:
ln -s /usr/local/mysql/bin/* /usr/local/bin/
两种方法均可达成结果
使用systemctl控制mysql
cp /usr/src/mysql-5.6.36/support-files/mysql.server /etc/rc.d/init.d/mysqld #复制源文件中的服务文件到rc.d/init.d/下
chmod a+x /etc/rc.d/init.d/mysqld #给予权限
chkconfig --add mysqld #加入服务
chkconfig mysqld on #启动服务
为什么和apache的链接位置不同呢?其实init.d是rc.d/init.d/的一个软链接目录,俩目录一样
添加完成后就可以通过systemctl来控制开关了
添加到系统服务
vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=Mysql server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=5000
[Install]
WantedBy=multi-user.target
复制粘贴即可
就可以将mysqld设置为开机自启了
查看服务端口
netstat -anput | grep mysql
设置密码(第一次)
mysqladmin -u root password
修改密码
mysqladmin -u root -p password
明文修改密码,其中的警告指的是密码明文有危险
正常登录
mysql -u root -p

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/91892.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/91892.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ant Design Vue notification自定义

<script setup> import { onMounted, h, ref, watch, getCurrentInstance } from vue; import { notification, Button } from ant-design-vue; onMounted(() > { const list [{id: 11,warnLevel: 严重,...},...]showMessage(list); }); function showMessage(){ for…

蓝桥杯算法之搜索章 - 2

大家好&#xff0c;接下来&#xff0c;我将带来对于搜索篇的新内容&#xff0c;这部分我将打算围绕DFS深度优先搜索去讲解。 温馨提示&#xff1a;由于这篇文章是接着上一篇文章的&#xff0c;如果新读者没有看过前一篇的话&#xff0c;推荐去看一下&#xff0c;不然有些地方可…

蓝桥杯----AT24C02

&#xff08;5-1&#xff09;、AT24C02掉电不丢失写入与读取AT24C02就是将数据写入E2PROM&#xff0c;保证写入数据掉电不丢失。考频低&#xff0c;一般不考&#xff0c;顶天考几个数据E2PROM&#xff0c;上电立马读取。AT24C02数据读取一定放在主程序最前面&#xff0c;否则会…

【物联网】基于树莓派的物联网开发【19】——树莓派搭建MQTT客户端及MQTTX使用

场景介绍 实现测试客户端与 MQTT 服务器的连接、订阅、取消订阅、收发消息等功能。 MQTT发布消息到代理服务器 安装paho-mqtt 使用pip工具安装paho-mqtt&#xff0c;输入以下指令即可&#xff1a; sudo pip install paho-mqtt安装 MQTT 客户端库 为了方便连接到 MQTT 服务器&am…

5G-A技术浪潮勾勒通信产业新局,微美全息加快以“5.5G+ AI”新势能深化场景应用

7月31日&#xff0c;国家互联网信息办公室发布《国家信息化发展报告》。《报告》中提出&#xff0c;新一代通信技术研发取得新成果&#xff0c;5G-A地空通信&#xff08;5G-ATG&#xff09;技术研发成功并完成测试验证。5G-A技术研发测试验证移动通信技术一般代际生命周期为10年…

SQLite Where 子句详解

SQLite Where 子句详解 SQLite 是一款轻量级的数据库管理系统,广泛应用于移动设备、嵌入式系统以及个人电脑。在 SQLite 中,WHERE 子句是 SQL 查询语句中不可或缺的一部分,它用于指定查询条件,从而筛选出满足特定条件的记录。本文将详细介绍 SQLite 中的 WHERE 子句,包括…

AI IDE+AI 辅助编程-生成的大纲-一般般

引言概述 AI IDE 和 AI 辅助编程的兴起及其对开发效率的影响提出核心问题&#xff1a;AI 工具能否真正帮助程序员减少加班&#xff08;告别 996&#xff09;&#xff1f;AI IDE 与 AI 辅助编程的定义与现状解释 AI IDE&#xff08;集成 AI 的开发环境&#xff09;和 AI 辅助编程…

ABP VNext + Dapr Workflows:轻量级分布式工作流

&#x1f680; ABP VNext Dapr Workflows&#xff1a;轻量级分布式工作流 &#x1f4da; 目录&#x1f680; ABP VNext Dapr Workflows&#xff1a;轻量级分布式工作流一、引言 ✨TL;DR &#x1f525;二、环境与依赖 &#x1f6e0;️三、系统架构与流程图 &#x1f3d7;️四、…

⭐ Unity 实现UI视差滚动效果(Parallax)鼠标控制、可拓展陀螺仪与脚本控制

✨ 效果如下在许多游戏、APP 或动效页面中&#xff0c;我们常见的一种视觉效果是 视差滚动&#xff08;Parallax Scrolling&#xff09;&#xff1a;前景、中景、背景在鼠标或设备移动时以不同速率轻微移动&#xff0c;从而营造出一种空间感和深度感。目前遇到这样一个需求 所以…

【05】VM二次开发——模块参数配置--带渲染/不带渲染(WinForm界面调用 模块参数配置)

文章目录1 Winform 窗口界面 &#xff08;带渲染的参数配置控件&#xff09;2 配置代码3 运行测试4 不带渲染的参数配置控件 对比4.1 添加控件4.2 代码及演示效果模块参数配置本教程介绍如何在VM二次开发中对模块参数进行配置 1 Winform 窗口界面 &#xff08;带渲染的参数配置…

Android 之 蓝牙通信(2.0 经典)

​​一、环境配置​​1. ​​添加依赖​​在 build.gradle 中添加库依赖&#xff1a;dependencies {implementation com.github.akexorcist:bluetoothspp:1.0.0 }2. ​​权限声明&#xff08;AndroidManifest.xml&#xff09;​<uses-permission android:name"androi…

使用 Scikit-LLM 进行零样本和少样本分类

使用 Scikit-LLM 进行零样本和少样本分类 使用 Scikit-LLM 进行零样本和少样本分类 在本文中&#xff0c;您将学习&#xff1a; Scikit-LLM如何将OpenAI的GPT等大型语言模型与Scikit-learn框架集成以进行文本分析。零样本和少样本分类之间的区别以及如何使用Scikit-LLM实现它…

android内存作假通杀补丁(4GB作假8GB)

可过如下app检测&#xff1a; 安兔兔、鲁大师、白眼、AIDA64、CPU X、CPU-Z、DevCheck、DeviceInfoHW lyw235yk235:~/Extend/lyw235/V/sprdroid1_v_4/sprdroid1_v$ git diff vnd/bsp/kernel5.15/kernel5.15/mm/page_alloc.c diff --git a/vnd/bsp/kernel5.15/kernel5.15/mm/pag…

Android 之 MVC架构

介绍1. MVC架构分工​​​​Model层​​&#xff1a;处理数据验证、网络请求等业务逻辑。​​View层​​&#xff1a;XML布局定义界面&#xff0c;Activity处理用户输入和显示结果。​​Controller层​​&#xff1a;Activity作为控制器&#xff0c;协调Model和View的交互对于登…

Centos Docker 安装手册(可用)

Centos 安装 Docker # 卸载旧版 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine \docker-selinux # 安装依赖工具 yum install -y yum-utils device-mapper-persistent-d…

烽火HG680-KX-海思MV320芯片-2+8G-安卓9.0-强刷卡刷固件包

烽火HG680-KX-海思MV320芯片-28G-安卓9.0-强刷卡刷固件包U盘强刷刷机步骤&#xff1a;1、强刷刷机&#xff0c;用一个usb2.0的8G以下U盘&#xff0c;fat32&#xff0c;2048块单分区格式化&#xff08;强刷对&#xff35;盘非常非常挑剔&#xff0c;usb2.0的4G U盘兼容的多&…

Python爬虫实战:研究pycares技术构建DNS解析系统

1. 引言 1.1 研究背景 随着互联网的飞速发展,网络上的数据量呈现爆炸式增长。网络爬虫作为一种高效的数据采集工具,被广泛应用于数据分析、市场调研、学术研究等领域。传统的爬虫在进行大规模数据采集时,往往会受到 DNS 解析效率的制约,成为影响爬取性能的瓶颈之一。 DNS…

从 0 到 1 认识 Spring MVC:核心思想与基本用法(下)

文章目录&#x1f4d5;4. 响应✏️4.1 返回静态页面✏️4.2 返回数据ResponseBody​✏️4.3 返回HTML代码片段​✏️4.4 返回JSON✏️4.5 设置状态码✏️4.6 设置Header&#xff08;了解&#xff09;&#x1f4d5;5. 案例练习✏️5.1 加法计算器✏️5.2 用户登录✏️5.3 留言板…

Python-初学openCV——图像预处理(五)——梯度处理、边缘检测、图像轮廓

目录 一、图像梯度处理 1、垂直边缘提取 2、Sobel算子 3、Laplacian算子 二、图像边缘检测 1、高斯滤波 2、计算图像的梯度、方向 3、非极大值抑制 4、双阈值筛选 三、绘制图像轮廓 1、概念 2、寻找轮廓 3、绘制轮廓 一、图像梯度处理 还记得高数中的一阶导数求极值…

【Redis】安装Redis,通用命令,常用数据结构,单线程模型

目录 一.在Ubuntu系统安装Redis 二. redis客户端介绍 三. 全局命令 3.1.GET和SET命令 3.2.KEYS&#xff08;生产环境禁止使用&#xff09; 3.3.EXISTS 3.4.DEL 3.5.EXPIRE 3.6.TTL 3.6.1.Redis的过期策略 3.6.2.基于优先级队列/堆的实现去实现定时器 3.6.3.定时器&a…