添加用户and授权root

添加用户and授权root

 adduser tom  #创建用户
 passwd  tom #设置密码
  chmod u+w /etc/sudoers #加可编辑权限
 #授权root
 vim /etc/sudoers

添加如下内容‘tom ALL=(ALL) NOPASSWD:ALL’ 在 ‘root ALL=(ALL) ALL’的下一行
Allow root to run any commands anywhere
root ALL=(ALL) ALL
tom ALL=(ALL) NOPASSWD:ALL

 chmod u-w /etc/sudoers #去掉可编辑权限 

退出重进一下即可

<think>我们已经有了用户上一次的问题和回答,用户现在想查询MySQL安装后修改root密码或添加用户的方法。根据用户提供的两个引用,我们可以结合这些引用以及我们之前的知识来回答。引用[1]提供了在Ubuntu/Debian系统下安装MySQL并启动服务的命令。引用[2]提到了修改root密码时遇到1064错误以及解决方法,并给出了一个博客链接。用户要求:查找MySQL安装后修改root密码或添加用户的方法。我们可以分为两个部分来回答:1.修改root密码的方法(包括可能遇到的错误以及解决方法)2.添加用户的方法注意:由于MySQL不同版本(如5.7和8.0)在修改密码的方式上可能有所不同,我们需要指出这些差异。我们参考引用[2]中的1064错误,这个错误通常是因为语法错误,可能是在旧版本的MySQL中使用新版本的语法,或者反之。因此,我们需要提供不同版本的修改密码方式。另外,我们之前回答中提到的环境变量设置等步骤在这里可能不是重点,但我们可以提一下确保mysql命令可以在命令行中执行(即配置好环境变量)。步骤:1.修改root密码:a.使用mysql_secure_installation(适用于安装后初次设置)b.使用SQL语句(ALTERUSER)在登录MySQL后修改(注意MySQL5.7和8.0的语法差异)c.如果忘记了密码,需要重置(但用户没有提到忘记密码,所以可能暂时不需要,但可以作为相关问题)2.添加用户:a.使用CREATEUSER语句b.使用GRANT语句分配权限注意:在修改密码时,我们可能会遇到引用[2]中提到的1064错误。这个错误可能由多种原因引起,比如在旧版本中使用新语法(MySQL8.0之前使用UPDATE修改密码,8.0推荐使用ALTERUSER)。因此,我们需要根据不同的MySQL版本给出不同的方法。为了确保安全,修改密码和添加用户都需要具有足够的权限(通常使用root用户操作)。我们结合引用[1]中的启动服务命令,确保MySQL服务已经启动。具体步骤:一、修改root密码(已知当前root密码的情况下)步骤1:登录MySQLmysql-uroot-p#输入当前密码步骤2:修改密码(不同MySQL版本)-MySQL5.7及以上(包括8.0)推荐使用:ALTERUSER'root'@'localhost'IDENTIFIEDBY'new_password';FLUSHPRIVILEGES;-如果使用UPDATE语句(旧方法,5.7之前常用,但现在不推荐,因为可能会报错):UPDATEmysql.userSETauthentication_string=PASSWORD('new_password')WHEREUser='root'ANDHost='localhost';FLUSHPRIVILEGES;注意:MySQL8.0中移除了PASSWORD函数,所以上述UPDATE语句在8.0中会报错。因此,推荐使用ALTERUSER。步骤3:退出并重新登录测试。二、如果遇到1064错误(如引用[2]):可能原因:1.语法错误,比如拼写错误、缺少分号、引号不匹配等。2.在MySQL8.0中使用PASSWORD函数。解决方法:检查语句是否与当前MySQL版本兼容。确保在正确的地方使用反引号(通常不需要)。使用正确的关键字和语法。三、添加用户步骤1:登录MySQL(使用root账户)步骤2:创建用户(以下两种方式选一)方式1(创建用户同时设置密码):CREATEUSER'newuser'@'localhost'IDENTIFIEDBY'password';方式2(先创建用户再设置密码,但一般不这样用):CREATEUSER'newuser'@'localhost';SETPASSWORDFOR'newuser'@'localhost'=PASSWORD('password');#注意MySQL8.0中不能使用PASSWORD函数,所以如果使用MySQL8.0,推荐使用方式1或者使用ALTERUSER修改密码。步骤3:授权(例如授予所有数据库的所有权限):GRANTALLPRIVILEGESON*.*TO'newuser'@'localhost'WITHGRANTOPTION;然后刷新权限:FLUSHPRIVILEGES;步骤4:检查用户权限:SHOWGRANTSFOR'newuser'@'localhost';注意:创建用户后,确保使用FLUSHPRIVILEGES;命令使权限生效。四、修改root密码(忘记密码的情况下)需要停止MySQL服务,然后以跳过权限表的方式启动,再修改密码。但用户没有提到忘记密码,我们可以将其放在相关问题中。根据要求,我们还需要生成相关问题。下面整理回答:</think> 以下是MySQL安装后修改root密码和添加用户的详细指南,基于不同版本(MySQL 5.7与8.0)提供解决方案,并包含常见错误处理。 --- ### **一、修改root密码教程** #### ✅ 方法1:已知原密码(推荐) 1. **登录MySQL** ```bash mysql -u root -p # 输入原密码 ``` 2. **执行修改命令(分版本)** - *MySQL 8.0+*: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES; ``` - *MySQL 5.7*: ```sql SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password'); FLUSH PRIVILEGES; ``` #### ⚠️ 方法2:忘记原密码(需停服务) 1. **停止MySQL服务** ```bash sudo systemctl stop mysql # Linux[^1] net stop mysql80 # Windows ``` 2. **跳过权限启动** ```bash mysqld_safe --skip-grant-tables & ``` 3. **无密码登录并重置** ```sql UPDATE mysql.user SET authentication_string='' WHERE User='root'; FLUSH PRIVILEGES; EXIT; ``` 重启服务后,用空密码登录再执行**方法1**修改。 --- ### **二、添加用户指南** 1. **登录MySQL** ```bash mysql -u root -p ``` 2. **创建用户(分版本)** ```sql -- MySQL 8.0+ CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'user_password'; -- MySQL 5.7 CREATE USER 'new_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'user_password'; ``` 3. **授权并刷新权限** ```sql GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'localhost'; -- 全库权限 FLUSH PRIVILEGES; ``` 4. **验证新用户** ```bash mysql -u new_user -p # 输入新密码测试 ``` --- ### **三、常见错误解决** #### ❌ **1064语法错误**(如引用[^2]) - **原因**: - MySQL 8.0中使用`PASSWORD()`函数(已废弃) - 遗漏分号`;`或引号不匹配 - **修复**: ```sql -- 错误示例(MySQL 8.0): SET PASSWORD = PASSWORD('123'); -- 报1064 -- 正确方案: ALTER USER 'root'@'localhost' IDENTIFIED BY '123'; ``` #### ❌ **权限拒绝** - **处理**: ```sql GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` --- ### **操作验证** ```sql -- 检查用户列表 SELECT User, Host FROM mysql.user; -- 查看权限 SHOW GRANTS FOR 'new_user'@'localhost'; ``` > ⚠️ **重要**:修改后务必运行`FLUSH PRIVILEGES;`刷新权限。Linux系统操作需`sudo`权限[^1],Windows需管理员命令行。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值