【配置环境】Linux下安装MySQL

目录

一,环境

二,安装步骤

1.使用包管理器安装MySQL

2.配置MySQL的安全选项

3.设置root用户使用密码进行身份验证(可选)

三,拓展知识

1.如何修改MySQL的密码策略?

2.实现连接MySQL数据库的测试代码


  • VMware® Workstation 16 Pro (版本:16.1.2 build-17966106)
  • ubuntu-22.04.2-desktop-amd64

1.使用包管理器安装MySQL

  • 对于Ubuntu/Debian系统,使用apt-get命令安装:
    • sudo apt-get update
    • sudo apt-get install mysql-server
  • 对于CentOS/RHEL系统,使用yum命令安装:
    • sudo yum update
    • sudo yum install mysql-server
  • 安装完成后,MySQL服务会自动启动。使用以下命令检查MySQL服务的状态:
    • sudo systemctl status mysql
  • 如果MySQL服务没有自动启动,可以手动启动MySQL服务:
    • 对于Ubuntu/Debian系统,使用以下命令:
      • sudo service mysql start
    • 对于CentOS/RHEL系统,使用以下命令:
      • sudo systemctl start mysql
  • 可以通过以下命令来检查MySQL服务是否在运行:
    • sudo systemctl is-active mysql
  • 停止MySQL服务命令如下:
    • sudo systemctl stop mysql

2.配置MySQL的安全选项

  • 对于MySQL 5.7版本及以上,运行以下命令进行初始配置:(这个命令会要求你设置MySQL的root用户密码和其他安全选项)
    • sudo mysql_secure_installation
  • 然后提示是否对密码验证组件进行配置,输入y
  • 接下来会显示选择设置密码的强度,输入0
  • 询问是否要移除匿名用户,输入y(上一步选择密码强度后会有一个输入要设置的密码过程,但是直接跳过了,原因看下一节
  • 询问是否禁用root用户进行远程登录,输入y
  • 询问是否删除测试数据库并访问它,输入y
  • 询问是否重新加载权限表,就是让到目前为止作出的设置将立即生效。输入y
  • 最后出现 All done,说明设置完成!
  • 安装完成后,可以通过以下命令登录MySQL服务器(此时是通过auth_socket插件进行身份验证的)
    • sudo mysql

3.设置root用户使用密码进行身份验证(可选)

  • 在配置MySQL的安全选项时,选择设置密码的强度后直接跳过了输入密码的一步,并显示如下红框中的内容
  • 这是因为在MySQL中,默认情况下,root用户使用的是auth_socket插件进行身份验证,而不是使用密码。auth_socket插件通过Unix套接字文件来验证用户的凭据。因此,如果使用auth_socket插件进行身份验证,就没有必要为root用户设置密码。

如果希望为root用户使用密码进行身份验证,可以按照以下步骤操作:

  • 以root用户身份登录MySQL(此时是通过auth_socket插件进行身份验证):
    • sudo mysql
  • 登录后,切换到MySQL系统数据库:
    • USE mysql;
  • 将root用户的身份验证方法更新为使用mysql_native_password插件:(将your_password替换为root用户的密码,密码长度至少为8个字符)
    • ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
  • 刷新权限表使更改生效:
    • FLUSH PRIVILEGES;
  • 完成这些步骤后,root用户将可以通过密码进行身份验证,而不是通过auth_socket插件。
  • 最后通过以下命令并输入前面设置的MySQL的root用户密码,即可登录MySQL服务器:
    • mysql -u root -p

1.如何修改MySQL的密码策略?

  • 在设置MySQL的登录密码时,会遇到如下错误提示
  • 出现这个错误是因为MySQL默认启用了密码策略来确保密码的安全性。根据密码策略,密码必须满足一定的要求才能被接受,要求如下红框中内容。
  • 但在MySQL中,可以通过修改密码策略变量来调整密码策略的要求。具体来说,可以修改以下两个相关的变量:
    • validate_password.policy:该变量定义了密码策略的要求。其取值可以是一个或多个如下策略的组合。
      • LOW:密码只要求长度满足即可。
      • MEDIUM:密码至少要求包含数字、字母和特殊字符。
      • STRONG:密码至少要求包含数字、字母、特殊字符和其它字符。
    • validate_password.length:该变量定义了密码的最小长度要求,默认为8,可以根据需要进行调整。

可以按照以下步骤在MySQL中调整密码策略:

  • 以root身份登录MySQL:
    • sudo mysql
  • 执行以下命令修改密码策略:(将密码策略设置为LOW,密码最小长度设置为4)
    • SET GLOBAL validate_password.policy='LOW';
    • SET GLOBAL validate_password.length=4;
  • 刷新权限表使更改生效:
    • FLUSH PRIVILEGES;
  • 退出MySQL的命令行界面:
    • QUIT;

2.实现连接MySQL数据库的测试代码

#include <mysql/mysql.h>
#include <stdio.h>int main() {MYSQL *conn;MYSQL_RES *res;MYSQL_ROW row;char *server = "localhost";char *user = "username";char *password = "password";char *database = "database_name";conn = mysql_init(NULL);// 连接数据库if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {fprintf(stderr, "%s\n", mysql_error(conn));mysql_close(conn);return 1;}// 执行SQL查询if (mysql_query(conn, "SELECT * FROM table_name")) {fprintf(stderr, "%s\n", mysql_error(conn));return 1;}res = mysql_use_result(conn);// 处理查询结果while ((row = mysql_fetch_row(res)) != NULL) {for(int i = 0; i < mysql_num_fields(res); i++) {printf("%s ", row[i] ? row[i] : "NULL");}printf("\n");}// 释放结果集和关闭连接mysql_free_result(res);mysql_close(conn);return 0;
}
  • 确保已经安装了 libmysqlclient-dev 库。如果尚未安装,可以使用以下命令安装:
    • sudo apt-get install libmysqlclient-dev
  • 在编译命令中,需要链接MySQL C API库。可以使用以下命令进行编译:
    • gcc -o my_program main.c -lmysqlclient
  • 如果仍然遇到问题,请确保编译器能够正确找到MySQL库文件的路径。如果MySQL库文件不在默认路径中,可能需要使用 -L 标志来指定库文件的路径。

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

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

相关文章

docker基础

安装docker 参考安装&#xff1a; https://docs.docker.com/engine/install/centos/#installation-methods 开机启动 systemctl enable docker.service systemctl is-enabled docker.service 安装docker compose https://github.com/docker/compose/releases/tag/v2.17.2 …

Idea报错:Cannot resolve symbol “springframework“以及各种依赖包

问题描述&#xff1a; Idea导入了maven项目之后出现报错Cannot resolve symbol “springframework” &#xff0c;识别不了这个标识或者找不到这个包&#xff0c;明明这些依赖和包都有就是出现报错&#xff0c;并且运行按钮变成灰色 解决办法&#xff1a; 其实这个原因大概率就…

【rust/egui】(二)看看template的main函数:日志输出以及eframe run_native

说在前面 rust新手&#xff0c;egui没啥找到啥教程&#xff0c;这里自己记录下学习过程环境&#xff1a;windows11 22H2rust版本&#xff1a;rustc 1.71.1egui版本&#xff1a;0.22.0eframe版本&#xff1a;0.22.0上一篇&#xff1a;这里 开始 首先让我们看看main.rs中有些什么…

【Linux系统编程】21.echo、env、fork、getpid、getppid

目录 echo PATH SHELL TERM LANG HOME env fork 返回值 getpid getppid 测试代码1 测试结果 测试代码2 测试结果 父子进程相同 父子进程不同 父子进程共享 echo 查看单个环境变量。 PATH 可执行文件的搜索路径。 SHELL 当前Shell。 TERM 当前终端类型。终端…

山西电力市场日前价格预测【2023-08-14】

日前价格预测 预测明日&#xff08;2023-08-14&#xff09;山西电力市场全天平均日前电价为322.03元/MWh。其中&#xff0c;最高日前电价为366.98元/MWh&#xff0c;预计出现在19: 30。最低日前电价为286.57元/MWh&#xff0c;预计出现在13: 15。 价差方向预测 1&#xff1a; 实…

【ARM Cache 系列文章 9 番外篇 -- ARMv9 系列 Core 介绍】

文章目录 ARMv9 系列CoreARM Cortex-A510 介绍ARM Cortex-A715ARM Cortex-A720 ARMv9 系列Core 2021年5月Arm公布了其最新3款CPU和3款GPU核心设计&#xff0c;三款新CPU分别是旗舰核心Cortex-X2、高性能核心Cortex-A710、高能效核心Cortex-A510 CPU&#xff0c;三款新GPU核心则…

《面试1v1》ElasticSearch 集群索引分片

&#x1f345; 作者简介&#xff1a;王哥&#xff0c;CSDN2022博客总榜Top100&#x1f3c6;、博客专家&#x1f4aa; &#x1f345; 技术交流&#xff1a;定期更新Java硬核干货&#xff0c;不定期送书活动 &#x1f345; 王哥多年工作总结&#xff1a;Java学习路线总结&#xf…

【学会动态规划】买卖股票的最佳时机 IV(18)

目录 动态规划怎么学&#xff1f; 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后&#xff1a; 动态规划怎么学&#xff1f; 学习一个算法没有捷径&#xff0c;更何况是学习动态规划&#xff0c; 跟我…

STM32F103C8T6开发笔记1:有线陀螺仪二自由度机械臂

经过之前几天的快速学习&#xff0c;今日尝试组装一款基于MPU6050陀螺仪控制的二自由度机械臂&#xff0c;本文对其使用器材以及基本原理进行介绍~ 组装效果图&#xff1a; 主要元器件如下&#xff1a; 器件个数15 KG以上 舵机3适合舵机的金属夹爪118650电池电源12V1云台支架2…

WebRTC音视频通话-实现GPUImage视频美颜滤镜效果iOS

WebRTC音视频通话-实现GPUImage视频美颜滤镜效果 在WebRTC音视频通话的GPUImage美颜效果图如下 可以看下 之前搭建ossrs服务&#xff0c;可以查看&#xff1a;https://blog.csdn.net/gloryFlow/article/details/132257196 之前实现iOS端调用ossrs音视频通话&#xff0c;可以查…

SCAU操作系统知识点之(一)计算机系统概述

缩写词&#xff1a; OS: Operating System 操作系统 PSW: Program Status Word 程序状态字 FCFS: First Come First Serve 先来先服务 PCB: Process Control Block 进程控制块 DMA: Direct Memory Access 直接存储器存取 MMU: Memory Management Unit 内存管理单元 SSTF: Short…

从零构建深度学习推理框架-6 构建计算图

PNNX PNNX项目 PyTorch Neural Network eXchange&#xff08;PNNX&#xff09;是PyTorch模型互操作性的开放标准。PNNX为PyTorch提供了一种开源的模型格式&#xff0c;它定义了与Pytorch相匹配的数据流图和运算图&#xff0c;我们的框架在PNNX之上封装了一层更加易用和简单的计…

本地跑Mapreduce程序的相关配置

本地跑MapReduce程序需要配置的代码 为了在本地运行MapReduce程序&#xff0c;需要加如下的东西 在项目中创建一个如图所示的包&#xff1a;org.apache.hadoop.io.nativeio&#xff0c;并在该包下面创建一个名为&#xff1a;NativeIO的类&#xff08;注意&#xff1a;名字不能…

五、约束编程求解优化问题

文章目录 1、瑶草问题-离散优化问题2、重试优化3、分支限界法-改进重试优化法4、重启式搜索4.1 重启方针/策略4.2 自动化搜索策略 THE END 1、瑶草问题-离散优化问题 \qquad 要求在一个建木上构建一个完整的分枝树&#xff0c;每一个完整的分枝有100段&#xff0c;完整分枝上的…

uniapp 扩展组件 uni-forms 的表单验证之 validateFunction 只响应一次

uniapp 扩展组件 uni-forms 的表单验证之 validateFunction 只响应一次 问题代码官方说明参考资料 问题代码 直接从官方示例中复制过来改的。为了演示 <template><view><uni-forms ref"form" :modelValue"formData" :rules"rules&qu…

深度学习(36)—— 图神经网络GNN(1)

深度学习&#xff08;36&#xff09;—— 图神经网络GNN&#xff08;1&#xff09; 这个系列的所有代码我都会放在git上&#xff0c;欢迎造访 文章目录 深度学习&#xff08;36&#xff09;—— 图神经网络GNN&#xff08;1&#xff09;1. 基础知识2.使用场景3. 图卷积神经网…

UnityWebGL移动端兼容性说明

测试时间2023.8.10 官方文档说明 依据Unity官方最新版本文档&#xff08;2021.3LTS&#xff09;&#xff0c;关于WebGL的兼容性说明为"Unity WebGL不支持移动设备。它可能适用于高端设备&#xff0c;但当前的设备通常不够强大&#xff0c;并且没有足够的内存来支持Unity …

【c语言】字符函数与字符串函数(上)

大家好呀&#xff0c;今天给大家分享一下字符函数和字符串函数&#xff0c;说起字符函数和字符串函数大家会想到哪些呢&#xff1f;&#xff1f;我想到的只有求字符串长度的strlen,拷贝字符串的strcpy,字符串比较相同的strcmp,今天&#xff0c;我要分享给大家的是我们一些其他的…

SQL-每日一题【1517. 查找拥有有效邮箱的用户】

题目 表: Users 编写一个解决方案&#xff0c;以查找具有有效电子邮件的用户。 一个有效的电子邮件具有前缀名称和域&#xff0c;其中&#xff1a; 前缀 名称是一个字符串&#xff0c;可以包含字母&#xff08;大写或小写&#xff09;&#xff0c;数字&#xff0c;下划线 _ &…

详细讲解如何在github上编辑个人主页?

在 GitHub 上编辑个人主页可以让您展示您的项目、技能和个人信息&#xff0c;以及与其他开发者互动。以下是详细的步骤来在 GitHub 上编辑个人主页&#xff1a; 创建 GitHub 账户 如果您还没有 GitHub 账户&#xff0c;首先需要注册一个。 登录到 GitHub 使用您的用户名和密…