欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > MySQL 安装及用户管理

MySQL 安装及用户管理

2024/10/24 15:57:17 来源:https://blog.csdn.net/weixin_43215013/article/details/143165038  浏览:    关键词: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';
    

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com