码迷,mamicode.com
首页 > 数据库 > 详细

mysql用户的增删与密码丢失问题

时间:2018-11-29 01:26:07      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:flush   丢失   use   init.d   解决   root   root密码   创建   my.cnf   

为root用户设置初始密码

mysqladmin -u root password oldboy(单实例)
mysqladmin -u root password oldboy -S /data/3306/mysql.sock(多实例)

 

修改root用户的密码

1.系统命令修改

mysqladmin -u root -poldboy password system(单实例)

mysqladmin -u root -poldboy password system -S /data/3306/mysql.sock(多实例)

2.sql语句修改update mysql.user set password=password(‘oldboy‘) where user=‘root‘ and host=‘localhost‘;(注意密码需使用加密函数,字符串需用引号,设置完后需flush将新密码从内存写入数据库)

flush privileges;

3.数据库中直接修改

set password=password(‘oldboy‘)(一般安装完成后采用,不适用于--skip-grant-tables)
flush privileges;

 

单实例root密码丢失解决方法

1.停止mysql,/etc/init.d/mysqld stop

2.跳过授权启动mysql,mysqld_safe --skip-grant-tables --user=mysql &

3.直接mysql登录数据库

4.使用update更新mysql.user表,并刷新权限,退出mysql

5.停止mysql,mysqladmin -uroot -poldboy(新设置的root密码) shutsdown(没有用mysqld启动,所以无法使用mysqld停止)

6.启动mysql,/etc/init.d/mysqld start

 

多实例root密码丢失解决方法

1.停止mysql,killall mysqld

2.跳过授权启动mysql,mysqld_safe --default-file=/data/3306/my.cnf --skip-grant-tables  &(需指定默认配置文件,且放在skip-grant-tables前面)

3.登录数据库,mysql -uroot -p -S /data/3306/mysql.sock

4.使用update更新mysql.user表,并刷新权限,退出mysql

5.停止mysql,killall mysqld

6.启动mysql,/data/3306/mysql start

 

创建与root权限相同的system用户

mysql>grant all privileges on *.* to system@‘localhost‘ identified by ‘oldboy‘ with grant option;(密码要用单引号引起来)

mysql>quit

[root@oldboy ~]#mysql –usystem –poldboy

mysql>

 

新建普通用户用户(创建后需要flush privileges)

1.sql中create user创建

mysql> create user ‘phh‘@‘localhost‘ identified by ‘phh‘;(注意三个引号要加上)

2.sql中更新mysql.user表

mysql> insert into mysql.user(host,user,password,ssl_cipher,x509_issuer,x509_subject) values(‘localhost‘,‘phh1‘,password(‘phh1‘),‘‘,‘‘,‘‘);

3.mysql中使用grant创建

mysql>grant select on mysql.user to ‘phh2‘@‘localhost‘ identified by ‘phh2’;

(grant 权限 on 库.表 to ‘用户’@’主机’ identified by ‘password’)

 

删除普通用户(删除后需要flush privileges)

1.mysql中drop user

mysql> drop user ‘phh2‘@‘localhost‘;

2. mysql中使用delete删除mysql.user

mysql> delete from mysql.user where user=‘phh1‘;

(主机名大写使用drop user可能不能删除用户,这是需要使用delete方法删除)

mysql用户的增删与密码丢失问题

标签:flush   丢失   use   init.d   解决   root   root密码   创建   my.cnf   

原文地址:https://www.cnblogs.com/Forever77/p/10035722.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!