MySql使用全记录4 -----设置root口令(即修改默认口令)

本文介绍如何通过四种方法设置MySQL数据库root用户的登录密码,包括使用GRANT语句、SET PASSWORD命令、更新user表及mysqladmin工具,以提高数据库的安全性。

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

设置MySql的root用户口令

本文由优快云-蚍蜉撼青松【主页:http://blog.youkuaiyun.com/howeverpf】整理编辑,转载请注明出处!

 

参考链接http://wenku.baidu.com/view/73ab05737fd5360cba1adb08.html

 

 

        安装好MySql服务以后,默认已有root用户,其默认密码为空,此时不使用口令即可登入。出于安全性考虑,我们需要设置数据库用户root的登录密码。

1.使用grant语句

        使用root和空密码进入mysql提示符,输入如下:

mysql>grant all on *.* to 'root'@'localhost' IDENTIFIED BY '新口令' with grant option;

2.使用set password命令

        使用root和空密码进入mysql提示符,输入如下:

mysql>set password for 'root'@'localhost'= password('新口令');

        命令的格式为,SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('口令');        若要允许远程登录,则主机名写为%

3.进入mysql库修改user表

        使用root和空密码进入mysql提示符,输入如下:

mysql>use mysql;
mysql>update user set password = password('新口令') where user = 'root';
mysql>flush privileges;

4.使用mysqladmin

        前提上是安装完毕后,去MySQL的bin目录下,看是否存在mysqladmin.exe这个可执行文件,有则可用此方法,木有就算了。(我在Win7上用wamp装的就没这工具)

        在mysqladmin.exe所在的目录下打开命令提示符(摁住shift后点鼠标右键),输入:

 

mysqladmin -uroot -p password 新口令
Enter password: ****                      //刚安装后为空,直接回车即可

 

 

------本文由优快云-蚍蜉撼青松【主页:http://blog.youkuaiyun.com/howeverpf】整理编辑,转载请注明出处!------

### 解决方案 当遇到 `MYSQL_ROOT_PASSWORD` 不生效的情况时,可能是因为 MySQL 容器已经存在旧的数据卷或配置文件干扰新设置密码。为了确保 `-e MYSQL_ROOT_PASSWORD` 参数正常工作,建议按照以下方法操作[^1]。 #### 方法一:删除现有容器及其数据卷重新创建 如果之前运行过 MySQL 容器并且指定了挂载点作为数据库存储位置,则需要先停止并移除该容器连同其关联的数据卷一起清理掉再尝试新的启动命令: ```bash docker stop my_mysql_container_name docker rm -v my_mysql_container_name ``` 之后可以使用如下命令来启动一个新的 MySQL 实例,并指定所需的 root 密码: ```bash docker run --name some-mysql \ -e MYSQL_ROOT_PASSWORD=my-secret-pw \ -d mysql:tag ``` 其中 `some-mysql` 是给定的新容器名称;而 `my-secret-pw` 则是你想要设定的实际密码字符串;最后面部分则是镜像标签(例如 `latest`, `8.0`),这取决于所使用的具体版本号[^2]。 #### 方法二:初始化脚本覆盖默认行为 另一种方式是在首次启动期间利用自定义 SQL 脚本来强制更改初始用户的凭证信息。可以通过向 `/docker-entrypoint-initdb.d/` 目录下放置 `.sql` 文件实现这一点。此目录中的所有`.sql` 文件都会被自动执行一次用于完成必要的初始化任务。 下面是一个简单的例子展示如何编写这样的SQL语句并将它加入到上述路径中去: ```sql ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'new-password'; FLUSH PRIVILEGES; ``` 这段代码会修改远程访问权限下的 Root 用户身份验证机制为传统模式(`mysql_native_password`)同时更新对应的登录口令为 `"new-password"` 。注意这里的 `'%'` 表示允许来自任何主机地址连接至服务器端实例上的Root账户[^3]。 #### 方法三:检查其他环境变量冲突 有时可能会因为误设了某些其他的环境变量而导致预期之外的结果发生。比如开启了随机生成管理员账号密码的功能 (`MYSQL_RANDOM_ROOT_PASSWORD=true`) 或者允许空白值 (`MYSQL_ALLOW_EMPTY_PASSWORD=true`) 都有可能造成实际应用过程中无法按计划输入固定字符串作为认证依据。因此应当仔细核对自己所提供的全部选项是否存在潜在矛盾之处[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值