当前位置:   article > 正文

mysql8022改密码_mysql 8.0 修改密码

mysql8022修改密码

mysql 的使用

我在使用 mysql 中的一些问题,其中有其他主机访问 mysql 失败的问题,修改用户密码失败的问题等,花了不少时间解决,其中修改用户密码花的时间最多,因为 mysql 8.0 之后取消了password() 函数并且将 mysql.user 表中的password 字段变成了 authentication_string 字段,导致网上一大堆教程都失去了作用,我也是尝试了多次才解决的这个问题,可能不是最好的,如果小伙伴有更好的解决方法,欢迎在评论区留言。

那么废话不多说,下面就是我解决问题之后的总结:

docker 启动 mysql

1. 启动

docker run --name containerName -p hostPort:containerPort -e MYSQL\_ROOT\_PASSWORD=your_password -d mysql

-p: 端口映射,mysql 容器端口指定了 3306,所以应该 your_port:3306

-e: 环境变量,设置 root 密码(必须有)

-d: 后台启动(可以没有)

--name:容器名(可以不写)

2. 在运行的容器中执行命令

docker exec -it containerID /bin/bash

-it: 分配终端并且交互式命令

3. 登陆 root 用户

mysql -h host -P hostPort -u root -p your_password

-h:登陆地址(不需要就不用写)

-P:前面自己分配的端口

-u:mysql 的用户

-p:密码

创建与删除用户

1. 标准格式

CREATE USER userName@host IDENTIFIED BY 'password';

host: 指定登陆地址(一般有localhost本地,%表示任意)

userName:要创建的用户名

'password':登陆那个用户需要的密码

2. 创建远程连接用户

CREATE USER userName IDENTIFIED BY 'password';

省略了 @host,这样写创建的是外部可以连接的用户

3. 删除用户

DELETE FROM user WHERE user='userName' and host='host';

设置权限

1. 标准格式

GRANT privileges ON datebaseName.tableName TO 'userName'@'host';

privileges:想要授予用户的权限

datebaseName.tableName:对哪个数据库的哪个表的权限,所有数据库下的所有表用 *.*表示

2. 授予用户所有库下所有表所有权限

GRANT all privileges ON *.* TO 'userName'@'%' WITH GRANT OPTION;

WITH GRANT OPTION: 授予用户授予其他用户权限的权限

3. 刷新权限表

FLUSH PRIVILEGES;

4. 查看权限

SELECT * FROM mysql.user WHERE user='userName' \G;

更改用户密码

1. 清空用户的 authentication_string 字段

UPDATE mysql.user SET authentication_string='' WHERE user='userName' and host='host';

2. 更改密码

ALTER user 'userName'@'host' IDENTIFIED BY 'newPassword';

注意要从 root 用户才能修改密码

最后感谢观看~~~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/310301?site
推荐阅读
相关标签
  

闽ICP备14008679号