mysql 8 遇到问题的常用命令-常更新

本篇文章基于mysql8,写的是自己的平时的坑,逻辑很乱,勿喷

命令

  • 停止 mysql 服务:net stop mysql
  • 开始 mysql 服务:net start mysql
  • 跳过密码登陆mysql:mysqld --console --skip-grant-tables --shared-memory
  • 登录 mysql :mysql -u root -p
  • (永久)修改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '修改的密码' PASSWORD EXPIRE NEVER
  • 刷新权限:flush privileges
  • 初始化:mysqld --initialize
  • 安装mysql:mysqld -install
  • MySQL5.6初始化的时候第一次设置密码:set PASSWORD=PASSWORD('你的密码')

开启远程配置

  • 查看是否创建了用户以及加密格式:select user,host,plugin from user

  • 创建用户:create user 'root'@'%' identified by '这里填写你的mysql密码';

  • 开启权限:grant all on *.* to 'root'@'%';

    或者 grant all privileges on 数据库名.* to 用户名@localhost;
    最近在本地尝试了一下是可以的,但是没有在云端尝试,本文中的命令都是在服务器上处理的,此命令除外

  • 刷新权限:flush privileges

先查看自己是否有创建 user为root ,host为% 的用户信息
如果没有创建,请先创建这个用户create user 'root'@'%' identified by '这里填写你的mysql密码';
然后再开启对应的权限grant all on *.* to 'root'@'%';
之后记得刷新一下权限即可flush privileges

在这里插入图片描述

连接数据库后出现

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

  • 原因:mysql 8 用户认证的加密方式和php7不兼容导致的,mysql8.0中默认方式为caching_sha2_password,引起老版本兼容性问题,老版本加密方式为mysql_native_password。
  • 查看加密方式在这里插入图片描述
  • 解决办法:更换为老版本加密方式即可
    ALTER USER 'root'@'localhost' identified with mysql_native_password BY '你的密码';
  • 刷新权限:flush privileges后,查看加密方式在这里插入图片描述

3.30

  • 当你update 修改了user表里面host列的内容时
  • 请一定要重新给给用户赋予数据的权限grant all privileges on 数据库名.* to 用户名@用户名对应的行的host值(root的话就不用)
  • 最后的最后一定要刷新一下权限flush privileges

5.24号总结

创建用户

  • 创建验证方式为mysql_native_password的密码(在服务器上这样设置可以用于远程连接) create user 'root'@'%' identified WITH mysql_native_password by '这里填写你的mysql密码';
  • 默认验证方式:create user 'root'@'%' identified by '这里填写你的mysql密码'

授权

  • GRANT privileges ON databasename.tablename TO 'username'@'host' [WITH GRANT OPTION];

privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
databasename:数据库名
tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*
WITH GRANT OPTION 该用户是否可授权

  • 授予部分权限:GRANT select,insert,update,delete,create ON 数据库名.* TO '用户名'@'用户名对应的行的host值' WITH GRANT OPTION
  • 授予所有权限:GRANT ALL ON 数据库名.* TO '用户名'@'用户名对应的行的host值'

2020.9.21

删除一个用户有2中办法:
  • 使用delete进行删除,但是如果再次创建同样的名字的用户,会导致无法创建,会类似的错误“ERROR 1396 (HY000): Operation CREATE USER failed for 'sinmu'@'localhost'”
  • 使用drop进行删除,可以进行同名创建

mysql5.6

  • 创建一个用户create user "username"@"localhost" identified by "yourpassword"
  • 刷新权限flush privileges
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python小叮当

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值