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.mzph.cn/diannao/57845.shtml

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

相关文章

通过Docker Compose构建自己的Java项目

通过Docker Compose构建自己的Java项目 前置条件 安装了Docker,未安装的请移步:CentOS7 / CentOS8 安装 Docker-ce安装了Docker-Compose,未安装的请移步:在CentOS7、CentOS8系统下安装Docker Compose1. 配置阿里云镜像仓库 为了提高Docker镜像的下载速度,我们可以配置阿…

【Git 】Windows 系统下 Git 文件名大小写不敏感

背景 在 Windows 系统上,Git 对文件名大小写的不敏感性问题确实存在。由于 Windows 文件系统(如 NTFS )在默认情况下不区分文件名大小写所导致的。 原因分析 文件系统差异 Windows文件系统(如 NTFS)默认不区分文件名…

代码随想录算法训练营第46期Day42

leetcode.518.零钱兑换 class Solution { public: //求装满背包有几种方法,公式都是:dp[j] dp[j - nums[i]]; // 如果求组合数就是外层for循环遍历物品,内层for遍历背包。 // 如果求排列数就是外层for遍历背包,内层for循环遍历物…

Detecting Holes in Point Set Surfaces 论文阅读

下载链接 Detecting Holes in Point Set Surfaces 摘要 3D 数据采集过程(例如激光范围扫描)产生的重要物体模型通常包含由于遮挡、反射或透明度而产生的孔洞。本文的目标就是在点集表面上检测存在的孔洞。对于每个点,将多个标准组合成一个综…

【机器学习】股票数据爬取与展示分析

数据爬取 一、爬取原理二、代码实践2.1 股票列表获取2.1.1 确定待爬取网页2.1.2 向网页发送请求获取页面响应2.1.3 文本转换成JSON2.1.4 将数据保存到csv文件中2.2 股票数据获取 三、结果分析 一、爬取原理 本文中主要使用的就是Python的request库,这个库基于HTTP请…

GPT打数模——电商品类货量预测及品类分仓规划

背景 电商企业在各区域的商品存储主要由多个仓库组成的仓群承担。其中存储的商品主要按照属性(品类、件型等)进行划分和打标,便于进行库存管理。图 1 是一个简化的示意图,商品品类各异,件数众多,必须将这些…

Task :prepareKotlinBuildScriptModel UP-TO-DATE,编译卡在这里不动或报错

这里写自定义目录标题 原因方案其他思路 原因 一般来说,当编译到这个task之后,后续是要进行一些资源的下载的,如果你卡在这边不动的话,很有可能就是你的IDE目前没有办法进行下载。 方案 开关一下IDE内部的代理,或者…

Jetpack架构组件_LiveData组件

1.LiveData初识 LiveData:ViewModel管理要展示的数据(VM层类似于原MVP中的P层),处理业务逻辑,比如调用服务器的登陆接口业务。通过LiveData观察者模式,只要数据的值发生了改变,就会自动通知VIEW层&#xf…

C#里使用最高性的网络通讯例子

由于接收网络数据会不完整的包, 并且产生各种问题,导致大家都是使用最低效的内存保存数据,比如List<byte>这样的结构。 具体内容可以参考下面的大牛的文章: System.IO.Pipelines: High performance IO in .NET - .NET Blog (https://devblogs.microsoft.com/dot…

【Spring】详解SpringMVC,一篇文章带你快速入门

目录 一、初始MVC 二、SpringMVC 三、Spring MVC的运用 ⭕RequestMapping ⭕传递参数 1、传递单个参数 2、传递多个参数 3、参数重命名 4、传递数组与集合 5、获取路径参数 6、传递JSON数据 7、上传文件 一、初始MVC MVC&#xff08;Model-View-Controller&#…

在不能联网的电脑上安装库(PyEMD为例)

1、查看PyEMD需要什么依赖 需要numpy、pathos、scipy、tqdm依赖&#xff0c;我电脑上有了numpy, scipy&#xff0c;以另外两个为例 2、查看依赖的依赖 查看依赖是否还要依赖 可以看到pathos还要这四个依赖&#xff0c;以此类推&#xff0c;看还要哪些依赖&#xff0c;直至req…

2024.9.27华为笔试题解

第一题绩效互评人员分配 二分图判断模板,可以去看其他博客学习一下 #include <bits/stdc++.h> using namespace std;vector<int> GoodRelationships[105]; int color[105]; // 记录每个节点的颜色,0表示未染色,1和2表示不同的组 bool is_bipartite = true; …

【C】用c写贪吃蛇

1.输入正确的账号密码及其用户名&#xff0c;登录成功进入贪吃蛇游戏界面&#xff0c; 2.随机生成蛇头★、食物▲的位置(x,y)&#xff0c;并使用□打印地图 3.使用w s a d按键&#xff0c;完成蛇头的上下左右移动 4.蛇头碰撞到食物后&#xff0c;吃下食物变成蛇身的一部分●…

Mac 使用脚本批量导入 Apple 歌曲

最近呢&#xff0c;买了一个 iPad&#xff0c;虽然家里笔记本台式都有&#xff0c;显示器都是 2个&#xff0c;比较方便看代码&#xff08;边打游戏边追剧&#xff09;。 但是在床上拿笔记本始终还是不方便&#xff0c;手机在家看还是小了点&#xff0c;自从有 iPad 之后&…

【Java】java 集合框架(详解)

&#x1f4c3;个人主页&#xff1a;island1314 ⛺️ 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1f442;&#x1f3fd;留言 &#x1f60d;收藏 &#x1f49e; &#x1f49e; &#x1f49e; 1. 概述 &#x1f680; &#x1f525; Java集合框架 提供了一系列用于存储和操作…

实现uniapp天地图边界范围覆盖

在uniapp中&#xff0c;难免会遇到使用地图展示的功能&#xff0c;但是百度谷歌这些收费的显然对于大部分开源节流的开发者是不愿意接受的&#xff0c;所以天地图则是最佳选择。 此篇文章&#xff0c;详细的实现地图展示功能&#xff0c;并且可以自定义容器宽高&#xff0c;还可…

java项目之电影评论网站(springboot)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的电影评论网站。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 电影评论网站的主要使用者管…

UE5 源码学习 初始化

跟着 https://www.cnblogs.com/timlly/p/13877623.html 学习 入口函数 UnrealEngine\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp WinMain 入口 int32 WINAPI WinMain(_In_ HINSTANCE hInInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ char* p…

8.three.js相机详解

8.three.js相机详解 1、 认识相机 在Threejs中相机的表示是THREE.Camera&#xff0c;它是相机的抽象基类&#xff0c;其子类有两种相机&#xff0c;分别是正投影相机THREE.OrthographicCamera和透视投影相机THREE.PerspectiveCamera&#xff1a; 正投影和透视投影的区别是&am…

R语言编程

一、R语言在机器学习中的优势 R语言是一种广泛用于统计分析和数据可视化的编程语言,在机器学习领域也有诸多优势。 丰富的包:R拥有大量专门用于机器学习的包。例如,caret包是一个功能强大的机器学习工具包,它提供了统一的接口来训练和评估多种机器学习模型,如线性回归、决…