mysql 'root'@'localhost'&‘root’@‘%’区别

本文探讨了MySQL中%与localhost设置的区别,特别是在备份数据库及跨库导入时的影响。此外,还对比了不同用户在不同IP设置下创建的过程与函数的权限差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.%允许来自任何ip的连接
   localhost允许本机的连接
2. dbfor studio mysql 6.2.280
  %的情况,使用backup databases,倒出来的SQL文件,在另外一个数据库中导入(restore database)不进去
  localhost的情况,使用backup databases,倒出来的SQL文件,在另外一个数据库中可以正常导入
3.  select * from mysql.proc可以看到他们的区别(procedure和function一样)
db                name          type         specific_name lanage  sql_data_access                                                                                 definer 
workinventory_held_by_customerFUNCTIONinventory_held_by_customerSQLREADS_SQL_DATANODEFINER   root@localhost
workinventory_in_stockFUNCTIONinventory_in_stockSQLREADS_SQL_DATANODEFINER   root@localhost
gameF_Dep_GetChildListFUNCTIONF_Dep_GetChildListSQLCONTAINS_SQLNODEFINER   user01@%
gameF_Get_TaskDeviationEstimateFUNCTIONF_Get_TaskDeviationEstimateSQLCONTAINS_SQLNODEFINER   user01@%
### 如何在 MySQL 中设置 `root@localhost` 用户的密码 #### 方法一:通过 `ALTER USER` 命令修改密码 对于 MySQL 8.x 版本,可以通过执行以下 SQL 命令来更改或设置 `root@localhost` 的密码。此命令适用于已存在用户的情况。 ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_plugin BY '新密码'; ``` 上述语句中的 `'新密码'` 需要替换为你希望使用的实际密码[^1]。 --- #### 方法二:使用 `SET PASSWORD` 修改现有用户的密码 如果仅需更新现有的 `root@localhost` 密码而不涉及身份验证插件的选择,则可使用以下命令: ```sql SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码'); ``` 需要注意的是,在较新的 MySQL 版本(如 8.x)中,`PASSWORD()` 函数已被弃用,因此推荐改用更现代的方式,即直接指定明文密码并让 MySQL 自动加密存储[^3]。 --- #### 方法三:利用 `mysqladmin` 工具重置密码 当忘记当前 `root` 账户的密码时,可通过外部工具 `mysqladmin` 来重新定义它。具体操作如下所示: ```bash mysqladmin -u root password "新密码" ``` 这条指令会提示输入旧密码以便确认权限合法性后再完成更换过程[^2]。 --- #### 方法四:跳过授权表以强制进入数据库管理系统 假如遇到无法正常登录到服务器上的情况——比如因为错误配置或者其他原因导致被锁定在外边——那么可以尝试临时禁用认证机制从而绕开常规安全措施获得控制权。步骤包括编辑 my.ini 文件添加一行参数指示忽略权限检查(`skip-grant-tables`) ,接着按照标准流程启动服务程序;最后再回到内部调整相关记录项恢复正常的保护状态[^4]。 --- ### 注意事项 无论采取哪种方式,请务必确保所选的新密码强度足够高,并妥善保管以防泄露风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值