user表是MySQL中的一个权限表,用来记录允许连接到服务器的账号信息;user表中的字段大致可以分为4类,分别是用户列、权限列、安全列和资源控制列。
Mysql—用户表详解(mysql.user) - 刘_love_田 - 博客园 (cnblogs.com)
Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。 而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。
mysql没有mysql.user表的root用户问题
vim /etc/my.cnf
skip-grant-tables #在[mysqld]下面添加这一行,忽略权限表
systemctl restart mysqld.service
create user 'root'@'localhost' identified by '密码';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
flush privileges;刷新配置
create user 'root'@'localhost' identified by '密码';
ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'localhost'
应该是之前创建,执行删除的时候没有删除干净。此时重新进行删除
drop user root@'ip';
flush privileges;
create user 'root'@'localhost' identified by '密码';
赋予root权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; #赋予所有库所有表操作权限
删除配置文件中的skip-grant-tables
vim /etc/my.cnf
如果不删除 用navicat远程连接会报错
2003-cant connection to mysql server on ‘IP’(10061 unknown error)
重启MySQL
systemctl restart mysqld.service
报错:
ERROR 1396 (HY000): Operation ALTER USER failed for ‘root‘@‘localhost
修改root的host为%
mysql -u root -p
use mysql;
select user,host from user;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
MySQL重启命令
(16条消息) MySQL启动和关闭命令_只是甲的博客-CSDN博客_mysql启动命令
(16条消息) 解决mysql没有mysql.user表的root用户问题_code_mzh的博客-CSDN博客_mysql无user表
(16条消息) MySQL启动和关闭命令_只是甲的博客-CSDN博客_mysql启动命令
(16条消息) Mysql数据库root密码管理四法_weixin_40913898的博客-CSDN博客_mysql数据库root密码