mysql忘记root密码 + 授权登录

一、拥有原来的myql的root的密码;

方法一:
在mysql系统外,使用mysqladmin
mysqladmin -u root -p password "test123"
Enter password: 【输入原来的密码】

方法二:
通过登录mysql系统,
mysql -uroot -p
Enter password: 【输入原来的密码】
mysql>use mysql;
mysql> update user set password=passworD("test") where user=‘root‘;
mysql> flush privileges;
mysql> exit;

方法三:
  通过登录mysql系统

mysql> set password for [email protected] = password(‘123‘);

二、忘记原来的myql的root的密码;

首先,你必须要有操作系统的root权限了。要是连系统的root权限都没有的话,先考虑root系统再走下面的步骤。
类似于安全模式登录系统,有人建议说是pkill mysql,但是我不建议哈。因为当你执行了这个命令后,会导致这样的状况:
/etc/init.d/mysqld status
mysqld dead but subsys locked
这样即使你是在安全模式下启动mysql都未必会有用的,所以一般是这样/etc/init.d/mysqld stop,如果你不幸先用了pkill,那么就start一下再stop咯。
mysqld_safe --skip-grant-tables &   &,表示在后台运行,不再后台运行的话,就再打开一个终端咯。
mysql
mysql> use mysql;
mysql> UPDATE user SET password=password("test123") WHERE user=‘root‘;   
mysql> flush privileges;
mysql> exit;

基础教程

一, 创建用户:

命令:CREATE USER ‘username‘@‘host‘ IDENTIFIED BY ‘password‘;

说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.

例子: CREATE USER ‘dog‘@‘localhost‘ IDENTIFIED BY ‘123456‘;
               CREATE USER ‘pig‘@‘192.168.1.101_‘ IDENDIFIED BY ‘123456‘;
               CREATE USER ‘pig‘@‘%‘ IDENTIFIED BY ‘123456‘;
               CREATE USER ‘pig‘@‘%‘ IDENTIFIED BY ‘‘;
               CREATE USER ‘pig‘@‘%‘;

二,授权:

命令:GRANT privileges ON databasename.tablename TO ‘username‘@‘host‘

说明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.

例子: GRANT SELECT, INSERT ON test.user TO ‘pig‘@‘%‘;
               GRANT ALL ON *.* TO ‘pig‘@‘%‘;

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
           GRANT privileges ON databasename.tablename TO ‘username‘@‘host‘ WITH GRANT OPTION;

      注意: 执行完授权  需要把user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里.
   
   执行mysql> flush privileges;

三.设置与更改用户密码

命令:SET PASSWORD FOR ‘username‘@‘host‘ = PASSWORD(‘newpassword‘);如果是当前登陆用户用SET PASSWORD = PASSWORD("newpassword");

例子: SET PASSWORD FOR ‘pig‘@‘%‘ = PASSWORD("123456");

四.撤销用户权限

命令: REVOKE privilege ON databasename.tablename FROM ‘username‘@‘host‘;

说明: privilege, databasename, tablename - 同授权部分.

例子: REVOKE SELECT ON *.* FROM ‘pig‘@‘%‘;

注意: 假如你在给用户‘pig‘@‘%‘授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO ‘pig‘@‘%‘, 则在使用REVOKE SELECT ON *.* FROM‘pig‘@‘%‘;命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO ‘pig‘@‘%‘;则REVOKE SELECT ON test.user FROM ‘pig‘@‘%‘;命令也不能撤销该用户对test数据库中user表的Select 权限.

具体信息可以用命令SHOW GRANTS FOR ‘pig‘@‘%‘; 查看.

五.删除用户

命令: DROP USER ‘username‘@‘host‘;

附表:在MySQL中的操作权限


ALTER


Allows use of ALTER TABLE.


ALTER ROUTINE


Alters or drops stored routines.


CREATE


Allows use of CREATE TABLE.


CREATE ROUTINE


Creates stored routines.


CREATE TEMPORARY TABLE


Allows use of CREATE TEMPORARY TABLE.


CREATE USER


Allows use of CREATE USERDROP USERRENAME USER, and REVOKE ALL PRIVILEGES.


CREATE VIEW


Allows use of CREATE VIEW.


DELETE


Allows use of DELETE.


DROP


Allows use of DROP TABLE.


EXECUTE


Allows the user to run stored routines.


FILE


Allows use of SELECT  INTO OUTFILE and LOAD DATA INFILE.


INDEX


Allows use of CREATE INDEX and DROP INDEX.


INSERT


Allows use of INSERT.


LOCK TABLES


Allows use of LOCK TABLES on tables for which the user also has SELECT privileges.


PROCESS


Allows use of SHOW FULL PROCESSLIST.


RELOAD


Allows use of FLUSH.


REPLICATION


Allows the user to ask where slave or master


CLIENT


servers are.


REPLICATION SLAV


Needed for replication slaves.


SELECT


Allows use of SELECT.


SHOW DATABASES


Allows use of SHOW DATABASES.


SHOW VIEW


Allows use of SHOW CREATE VIEW.


SHUTDOWN


Allows use of mysqladmin shutdown.


SUPER


Allows use of CHANGE MASTERKILLPURGE MASTER LOGS, and SET GLOBAL SQL statements. Allows mysqladmin debug command. Allows one extra connection to be made if maximum connections are reached.


UPDATE


Allows use of UPDATE.


USAGE


Allows connection without any specific privileges.

时间: 2024-10-22 20:34:35

mysql忘记root密码 + 授权登录的相关文章

MySQL忘记root密码后修改

MySQL忘记root密码后可以使用下面的方法修改. 1.登录MySQL所在的服务器,手工kill掉MySQL进程 kill `cat $mysql_data_dir/hostname.pid` $mysql_data_dir/hostname.pid为MySQL数据目录,它记录了MySQL服务的进程号. [[email protected] ~]# ps -ef |grep mysql root      6602     1  0 21:39 ?        00:00:00 /bin/s

Linux下使用MySQL——忘记root密码及修改MySQL默认编码

概述: 本博客不再对MySQL的语法进行讲解和说明,想了解或熟悉的朋友请自行百度或Google学习.本博客主要是针对MySQL除语法之外的总结,希望能够也能帮助到你. 1.CentOS6.x下MySQL忘记root密码解决方法 Ⅰ. 修改MySQL的登录设置 # vim /etc/my.cnf 在[mysqld]段中加上一句:skip-grant-tables Ⅱ. 重启服务 # service mysqld restart Ⅲ. 登录Mysql,修改密码信息 # mysql mysql> US

linux下mysql忘记root密码怎么办

Linux下MySQL忘记root密码怎么办? Linux下MySQL忘记root密码怎么办? 1. 修改MySQL配置文件 默认MySQL的配置文件为/etc/my.cnf,在[mysqld]下面添加一行 1.skip-grant-tables 2. 保存配置文件,重启MySQL服务 1.service mysqld restart 3. 再次进入MySQL 1.[[email protected] mysql]$ mysql -u root -p2.Enter password: #此处直接

MySQL忘记root密码后的处理

创建root管理员: mysqladmin -u root password 123456 然后乱输密码会出现如下情况 [[email protected] ~]# mysql -u root -pEnter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 解决方法 1.停止mysqld服务 [[email protected] ~]# service mys

mysql忘记root密码连接本地库

今天想做个小项目,决定用mysql数据库,但是好久没用mysql了,也忘掉了当时建库时root密码是什么了,找到了一篇文章,在这里记录下. Windows下mysql忘记root密码的解决方法: Mysql版本:5.1.55-community MySQL Community Server (GPL) 1. 首先检查mysql服务是否启动,若已启动则先将其停止服务,可在开始菜单的运行,使用命令: net stop mysql 或者在windows任务管理器中结束mysqld.exe进程,或者在控

Ubuntu下MySQL忘记root密码重置

MySQL忘记root密码肿么办?-_-|||   这种情况虽然不是很常见,但是有时长时间没有登录系统,还真会忘记密码.这时候,如果您能以系统管理员权限登陆密码,那还是有救的.放大招,将其重置即可. 1. 修改MySQL的登录设置 vi /etc/mysql/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables :wq 保存设置并退出vi 2. 重新启动mysqld sudo service mysql restart 3. 登录并修改MySQL的root密码  进

windows下mysql忘记root密码的解决办法

今天早上 一朋友说自己的mysql 忘记root密码了 让我帮忙给看看,因为没有接触过mysql 所以从网上找了一下信息经我亲身实践  已经成功!mysql版本是5.1以下是从网上找的信息: 1. 首先检查mysql服务是否启动,若已启动则先将其停止服务,可在开始菜单的运行,使用命令: net stop mysql 打开第一个cmd1窗口,切换到mysql的bin目录,运行命令: mysqld --defaults-file="C:\Program Files\MySQL\MySQL Serve

解决Windows&Linux下Mysql忘记ROOT密码

MySQL忘记root密码怎么办?一般情况下会有两种思路:找回密码和重置密码.在实际的工作中,MySQL数据库忘记root密码一般采用重置密码的办法去解决.下面就看看在Linux下和在Windows下重置root密码的步骤. Windows下MySQL忘记root密码怎么办? 1.以系统管理员身份登陆系统,启动mysql跳过权限检查. d:\mysql\bin\mysqld-nt –skip-grant-tables 2.进到d:\mysql\bin下,使用mysqladmin命令设置密码 d:

MySQL忘记root密码的解决方案

在实际操作中忘记MySQL的root密码是一件令人很头痛的事情,不要急以下的文章就是介绍MySQL的root密码忘记的时候解决方案,我们可以对其进行如下的步骤重新设置,以下就是文章的详细内容描述. 首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库.因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的状态下,其他的用户也可以任意地登录和修改MySQL的信息.可以采用将MySQL对外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服