MySQL 安装及用户管理

MySQL 安装及用户管理

MySQL 是一款广泛使用的开源关系数据库管理系统,适用于各种应用程序和平台。本文将提供在不同操作系统(Windows、macOS 和 Linux)上安装 MySQL 的详细步骤,并介绍如何创建 MySQL 用户及设置密码。

1. Windows 上安装 MySQL

步骤 1:下载 MySQL 安装程序

访问 MySQL 官方网站 下载最新的 Windows 安装包。

步骤 2:运行安装程序

  • 双击下载的安装文件,选择“Custom”安装选项,以便选择所需组件。
  • 安装向导将引导您完成安装步骤。

步骤 3:配置 MySQL

  • 选择“Server”类型,配置 MySQL 服务器设置,包括网络端口(默认是 3306)和 root 用户密码。
  • 可以选择是否配置 MySQL 作为 Windows 服务。

步骤 4:完成安装

安装完成后,您可以通过 MySQL Workbench 或命令行界面连接到数据库。

步骤 5:创建新用户及设置密码

  1. 使用以下命令连接到 MySQL:

    mysql -u root -p
    

    输入您在安装过程中设置的 root 密码。

  2. 创建新用户并设置密码:

    CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
    
  3. 授予新用户权限(例如,全部权限):

    GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
    
  4. 刷新权限:

    FLUSH PRIVILEGES;
    

2. macOS 上安装 MySQL

步骤 1:使用 Homebrew 安装(推荐)

如果您尚未安装 Homebrew,可以在终端中执行以下命令:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

然后运行:

brew install mysql

步骤 2:启动 MySQL 服务

安装完成后,您可以通过以下命令启动 MySQL 服务:

brew services start mysql

步骤 3:设置 root 用户密码

运行以下命令以安全模式启动 MySQL:

mysql_secure_installation

按照提示设置 root 密码和其他安全选项。

步骤 4:连接到 MySQL

使用以下命令连接到 MySQL:

mysql -u root -p

输入您刚才设置的密码即可。

步骤 5:创建新用户及设置密码

  1. 连接到 MySQL 后,使用以下命令创建新用户:

    CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
    
  2. 授予新用户权限:

    GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
    
  3. 刷新权限:

    FLUSH PRIVILEGES;
    

3. Linux 上安装 MySQL

步骤 1:更新软件包列表

在终端中运行以下命令以更新软件包列表:

sudo apt update

步骤 2:安装 MySQL

对于基于 Debian 的系统(如 Ubuntu),可以使用以下命令:

sudo apt install mysql-server

对于基于 Red Hat 的系统(如 CentOS),使用:

sudo yum install mysql-server

步骤 3:启动 MySQL 服务

安装完成后,启动 MySQL 服务:

sudo systemctl start mysql

步骤 4:设置安全配置

运行以下命令以提高 MySQL 的安全性:

sudo mysql_secure_installation

按照提示设置 root 密码和其他安全选项。

步骤 5:连接到 MySQL

使用以下命令连接到 MySQL:

mysql -u root -p

输入您刚才设置的密码即可。

步骤 6:创建新用户及设置密码

  1. 连接到 MySQL 后,使用以下命令创建新用户:

    CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
    
  2. 授予新用户权限:

    GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
    
  3. 刷新权限:

    FLUSH PRIVILEGES;
    

注意事项:

外部访问:

错误 1130: host '192.168.4.1' is not allowed to connect to this MySQL server 表示 MySQL 配置不允许从 192.168.4.1 这个 IP 地址连接到数据库。这个问题可能有以下几个原因及相应的解决方法。

1. 检查 MySQL 用户权限

MySQL 的访问控制基于用户和主机名/IP 地址的组合。你需要确保允许从 192.168.4.1 连接的用户有足够的权限。

步骤:

  1. 使用 MySQL 的 root 用户登录本地 MySQL:

    mysql -u root -p
    
  2. 检查当前用户的权限:

    SELECT user, host FROM mysql.user;
    

    如果 user@'192.168.4.1' 不存在,说明这个用户没有权限从该主机连接。

  3. 添加或更新用户权限,允许从 192.168.4.1 连接:

    • 如果你希望允许 user 从任何 IP 地址连接:

      GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password';
      
    • 如果你只允许 user192.168.4.1 连接:

      GRANT ALL PRIVILEGES ON *.* TO 'user'@'192.168.4.1' IDENTIFIED BY 'password';
      
  4. 刷新权限表,使更改生效:

    FLUSH PRIVILEGES;
    

2. 检查 MySQL 配置文件

MySQL 配置文件可能限制了外部连接,通常通过 bind-address 参数设置。默认情况下,MySQL 可能只允许本地主机连接。

步骤:

  1. 打开 MySQL 配置文件(通常在 /etc/mysql/my.cnf/etc/mysql/mysql.conf.d/mysqld.cnf):

    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    
  2. 查找 bind-address 参数:

    bind-address = 127.0.0.1
    

    如果存在 bind-address = 127.0.0.1,MySQL 只允许本地连接。你需要修改为 0.0.0.0,以允许来自任何 IP 的连接,或者指定特定的 IP 地址:

    bind-address = 0.0.0.0
    
  3. 保存文件后,重启 MySQL 服务以应用更改:

    sudo systemctl restart mysql
    

3. 防火墙配置

确保服务器的防火墙允许 192.168.4.1 IP 地址访问 MySQL 端口(默认是 3306)。

步骤:

  1. 使用 ufw 工具检查防火墙规则:

    sudo ufw status
    
  2. 如果端口 3306 未开放,允许 MySQL 端口通过:

    sudo ufw allow 3306/tcp
    

修改权限

在 MySQL 中,已经创建的用户可以通过不同的方法进行修改,包括修改用户名、主机、密码或权限等。以下是常见的几种修改操作:

1. 修改用户的密码

可以使用 ALTER USERSET PASSWORD 命令修改现有用户的密码。

ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';

例如:

ALTER USER 'newuser'@'localhost' IDENTIFIED BY 'new_password';

也可以使用 SET PASSWORD 命令:

SET PASSWORD FOR 'newuser'@'localhost' = PASSWORD('new_password');

2. 修改用户的主机名

如果你想修改用户的主机(例如将用户从只能通过 localhost 访问修改为从任何主机都可以访问),可以使用 RENAME USER 命令。

RENAME USER 'username'@'old_host' TO 'username'@'new_host';

例如:

RENAME USER 'newuser'@'localhost' TO 'newuser'@'%';

上述命令将 newuser 用户从只能通过本地主机连接修改为可以从任何主机连接。

3. 修改用户名

如果需要修改用户名,可以使用 RENAME USER 命令:

RENAME USER 'old_username'@'host' TO 'new_username'@'host';

例如:

RENAME USER 'newuser'@'localhost' TO 'updateduser'@'localhost';

这会将 newuser 改为 updateduser,且保持原来的主机访问限制不变。

4. 赋予或撤销权限

权限可以通过 GRANTREVOKE 命令进行修改。

  • 授予权限

    GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';
    

    例如:

    GRANT SELECT, INSERT ON mydb.* TO 'newuser'@'localhost';
    
  • 撤销权限

    REVOKE privilege_type ON database_name.* FROM 'username'@'host';
    

    例如:

    REVOKE INSERT ON mydb.* FROM 'newuser'@'localhost';
    

最后执行 FLUSH PRIVILEGES 来刷新权限表,使更改生效:

FLUSH PRIVILEGES;

5. 删除用户

如果需要删除已经创建的用户,可以使用 DROP USER 命令:

DROP USER 'username'@'host';

例如:

DROP USER 'newuser'@'localhost';

6. 查看用户权限

在修改用户权限前,你可以查看现有用户的权限,使用以下命令:

SHOW GRANTS FOR 'username'@'host';

例如:

SHOW GRANTS FOR 'newuser'@'localhost';

示例操作:

  • 修改 newuser 的密码:

    ALTER USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';
    
  • newuser 从只能通过 localhost 访问修改为可以从任意主机访问:

    RENAME USER 'newuser'@'localhost' TO 'newuser'@'%';
    
  • 授予 newuser 对数据库 mydb 的所有权限:

    GRANT ALL PRIVILEGES ON mydb.* TO 'newuser'@'localhost';
    

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

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

相关文章

Java-图书管理系统

我的个人主页 欢迎来到我的Java图书管理系统,接下来让我们一同探索如何书写图书管理系统吧! 1管理端和用户端 2建立相关的三个包(book、operation、user) 3建立程序入口Main类 4程序运行 1.首先图书馆管理系统分为管理员端和…

TPLCM柔性屏自动化贴合应用

在当前的显示屏制造领域,TP&LCM贴合技术是推动产品升级和满足市场需求的关键环节。随着技术的不断进步,全贴合技术因其卓越的显示效果和用户体验,逐渐成为中高端产品的标配。然而,这一技术的高精度要求和复杂工艺也带来了诸多…

物联网数据采集网关详细介绍-天拓四方

一、物联网数据采集网关的概述 物联网数据采集网关,简称数据采集网关,是物联网系统中的重要组成部分,位于物联网设备和云端平台之间。其主要职责是实现数据的采集、汇聚、转换、传输等功能,确保来自不同物联网设备的数据能够统一…

学习笔记——动态路由——OSPF(距离矢量协议)OSPF路由类型

OSPF路由类型 在OSPF中,路由类型指的是不同种类的路由,用于描述网络中不同的路由信息及其传输方式。 1、Intra Area路由(区域内路由) Intra Area路由(区域内路由/本地路由/内部路由)是OSPF协议中的一种路由类型,用于描述在同一个OSPF区域内…

小白直接冲!一区蛇群优化算法+双向深度学习+注意力机制!SO-BiTCN-BiGRU-Attention多输入单输出回归预测

小白直接冲!一区蛇群优化算法双向深度学习注意力机制!SO-BiTCN-BiGRU-Attention多输入单输出回归预测 目录 小白直接冲!一区蛇群优化算法双向深度学习注意力机制!SO-BiTCN-BiGRU-Attention多输入单输出回归预测预测效果基本介绍程…

Linux相关概念和易错知识点(16)(Shell原理、进程属性和环境变量表的联系)

Shell原理及其模拟实现 在认识进程exec系列函数、命令行参数列表、环境变量之后,我们可以尝试理解一下Shell的原理,将各方知识串联起来,让Shell跑起来才能真正理解这些概念。我会以模拟Shell执行的原理模拟一个Shell。途中配上相关讲解。 1…

Mybatis-03.入门-配置SQL提示

一.配置SQL提示 目前的Springboot框架在mybatis程序中编写sql语句并没有给到任何的提示信息,这对于开发者而言是很不友好的。因此我们需要配置SQL提示。 配置SQL提示 这样再去写SQL语句就会有提示了。 但是会发现指定表名时并没有给出提示。这是因为&#xff1a…

用kali入侵 DarkHole_2测试

进入kali系统调出root交互式界面 netdiscover -r 000.000.000.000/24 -------局域网探测IP工具 nmap 设备端口扫描 发现两个攻击点一个是80端口的Http 一个是22端口的ssh 发现有许多GIT文件 可能会出现git源码泄露 使用githack URL 命令还原git源文件 打开面板控制命令行 输入…

2024数学分析【南昌大学】

计算极限 lim ⁡ n → ∞ 2024 n ( 1 − cos ⁡ 1 n 2 ) n 3 1 + n 2 − n \mathop {\lim }\limits_{n \to \infty } \frac{{\sqrt[n]{{2024}}\left( {1 - \cos \frac{1}{{{n^2}}}} \right){n^3}}}{{\sqrt {1 + {n^2}} - n}} n→∞lim​1+n2 ​−nn2024 ​(1−cosn21​)n3​ …

【Vulnhub靶场】DC-4

DC-4靶场下载地址https://www.five86.com/downloads/DC-4.zip 本机IP:192.168.118.128 靶机IP:192.168.118.0/24 信息收集 扫描主机存活,扫描端口,扫描服务 第一步扫描出主机ip为192.168.118.141 nmap -sP 192.168.118.0/24 nm…

通过rancher2.7管理k8s1.24及1.24以上版本的k8s集群

目录 初始化实验环境 安装Rancher 登录Rancher平台 通过Rancher2.7管理已存在的k8s最新版集群 文档中的YAML文件配置直接复制粘贴可能存在格式错误,故实验中所需要的YAML文件以及本地包均打包至网盘. 链接:https://pan.baidu.com/s/1oYX4eGoBtW_R-7i…

canvas-editor首行缩进

canvas-editor中渲染部分的源码都在Draw.ts里,能找到computeRowList方法中并没有实现首行缩进相关的逻辑,但是实现了element.type ElementType.TAB的缩进,如图: 因此我们可以基于tab进行首行缩进的逻辑编写,在main.ts…

GoogleChrome和Edge浏览器闪屏问题

GoogleChrome和Edge浏览器闪屏问题 文章目录 GoogleChrome和Edge浏览器闪屏问题 买了电脑半年, GoogleChrome和edge浏览器出现了一个令人头疼的问题–闪屏, 就是打开这两个浏览器之后, 就会出现电脑屏幕一闪一闪的, 过一会就看不见了, 跟黑夜里的闪电一样, 遇到这种情况我都会直…

《 C++ 修炼全景指南:十七 》彻底攻克图论!轻松解锁最短路径、生成树与高效图算法

摘要 1、引言 1.1、什么是图? 图(Graph)是计算机科学和离散数学中一种重要的数据结构,用来表示一组对象之间的关系。一个图由顶点(也称为节点,Vertex)和边(Edge)组成。…

【Python爬虫实战】Selenium自动化网页操作入门指南

#1024程序员节|征文# 🌈个人主页:易辰君-CSDN博客 🔥 系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html ​ 目录 前言 一、准备工作 (一)安装 Selenium 库 &#xff0…

VMware Workstation Pro 16 搭建 android-x86过程问题罗列

1、搭建完成后,app安装显示软件包解析失败或app打开闪退 测试了android-x86_64-9.0-r2这个版本,发现按照网上部署arm库方法没有成功,最后使用android-x86-7.1-r5版本解决了问题 2、android-x86网络连接不通 虚拟机网络设置选择桥接模式 安…

低代码平台如何通过AI赋能,实现更智能的业务自动化?

引言 随着数字化转型的加速推进,企业在日常运营中面临的业务复杂性与日俱增。如何快速响应市场需求,优化流程,并降低开发成本,成为各行业共同关注的核心问题。低代码平台作为一种能够快速构建应用程序的工具,因其可视化…

Springboot 使用EasyExcel导出Excel文件

Springboot 使用EasyExcel导出Excel文件 Excel导出系列目录:引入依赖创建导出模板类创建图片转化器 逻辑处理controllerservice 导出效果遗留问题 Excel导出系列目录: 【Springboot 使用EasyExcel导出Excel文件】 【Springboot 使用POI导出Excel文件】 …

如何提高游戏的游戏性

改进游戏玩法是一个动态的过程,需要深入了解是什么让玩家保持参与、挑战和兴奋,以获得更多。优秀游戏的核心是平衡——乐趣和难度的无缝结合,让玩家在不感到沮丧的情况下为自己的技能感到奖励。微调这种平衡通常涉及调整难度曲线,…

HTML+JavaScript案例分享: 打造经典俄罗斯方块,详解实现全过程

在本文中,我们将深入探讨如何使用 JavaScript 实现经典的俄罗斯方块游戏。俄罗斯方块是一款广为人知的益智游戏,通过操纵各种形状的方块,使其在游戏区域内排列整齐,以消除完整的行来获得分数。 效果图如下: 一、游戏界面与布局 我们首先使用 HTML 和 CSS 来创建游戏的界面…