在命令行输入以下命令停止 MySQL 服务:
sudo systemctl stop mysql
重新启动 MySQL 服务,并使用 -skip-grant-tables 参数跳过权限校验:
sudo mysqld_safe --skip-grant-tables
以 root 用户身份重新登录 MySQL:
mysql -u root
使用如下命令修改 root 用户密码:
USE mysql;
UPDATE user SET authentication_string=PASSWORD('mynewpassword') WHERE User='root';
FLUSH PRIVILEGES;
其中 mynewpassword 是你要设置的新密码,改完密码后执行 FLUSH PRIVILEGES 语句,刷新权限表.
终止现有的 MySQL 实例以及跳过授权验证实例,然后重新启动 MySQL:
sudo systemctl stop mysql
sudo systemctl start mysql
USE mysql;
UPDATE user SET authentication_string=PASSWORD('123456') WHERE User='root';
FLUSH PRIVILEGES;
以 root 用户身份登录 MySQL:
mysql -u root -p
使用以下命令创建新的 MySQL 用户:
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password1';
其中,user1 是新建用户的名称,localhost 是被授权的主机名,可以替换为其他 IP 地址或者 host 名称.password1 是新建用户的密码.
使用以下命令为新建用户授权 MySQL 访问权限:
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'localhost' WITH GRANT OPTION;
这条语句将允许 user1 用户从 localhost 访问 MySQL 所有的数据库和表,并且允许它将它的权限授予其他 MySQL 用户.
执行以下命令,以使权限更改生效:
FLUSH PRIVILEGES;
CREATE USER 'user2'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'user2'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
mysql -u root -p
使用 show grants 命令查看目前的 MySQL 数据库和表的权限设置:
SHOW GRANTS FOR 'user'@'localhost';
这个命令将显示 user 用户当前所拥有的所有 MySQL 数据库和表的权限.
可以使用以下命令为用户赋予 MySQL 访问权限:
GRANT ALL ON database_name.* TO 'user'@'localhost';
其中,database_name 表示数据库名称,user 表示用户名,localhost 表示主机名.这个命令将允许 user 用户访问指定的数据库和表.
FLUSH PRIVILEGES;
例如,我们查看一下 user 用户目前所拥有的 MySQL 数据库和表的权限:
SHOW GRANTS FOR 'user'@'localhost';
该命令将输出如下信息:
+---------------------------------------------------------+
| Grants for user@localhost |
+---------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user'@'localhost' |
| GRANT ALL PRIVILEGES ON +db_test+.* TO 'user'@'localhost' |
+---------------------------------------------------------+
我们可以看到,user 用户只拥有对 db_test 数据库的全部权限,对于其他数据库和表,它只有使用权限.
以上就是土嘎嘎小编大虾米为大家整理的相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!