hy-小山

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一、设置修改mysql root 用户密码   

 

  1.命令行的方式修改密码    最常使用

mysqladmin -uroot -p'原始密码' password 'NEW PASSWD'

 

  2.SQL语句修改密码   注:此方法适合密码丢失,mysql无校验方法启动修改

update mysql.user SET password=password('明文密码')  where user=root host='localhost' ;

  

  3.mysql中用SET password 命令修改 

set password=passwrod('新密码’) where user='root' and  host='localhost' ;

 

新数据库安全的做法是删除原有用户,手动指定新用户

delete from mysql.user;
grant all privileges on *.* ro root@'local' identified by 'PASSWD' whit grant option;
flush privileges ;

 

二、优雅关闭数据库的方法

1 mysqladmin 命令
    mysqladmin -uroot -p'passwd' shutdown
2 自带脚本
    /etc/init.d/mysqld stop
3 强制关闭 (生产数据库有风险,一般不用)    选择由上到下
    pkill mysqld
    killall mysqld
    killall -9 mysqld        

 

三、mysql密码找回(实战)

  单实例

  1.停止mysql

/etc/init.d/mysqld stop 

  2.使用--skip-grant-tables 忽略授权表启动mysql

mysql_safe --skip-grant-tables -user=mysql & 

  3.直接登录并修改密码

#mysql
mysql>update mysql.user SET password=password('新密码') where user=root and host='localhost';
mysql>flush privileges; mysql
>quit

  4.重启启动mysql,此时无法用init.d/mysqld stop

 mysqladmin -uroot -p'新密码' shoutdown
/etc/init.d/mysqld start
mysql -uroot -p'新密码'       
              --完成

*****************  二进制安装的mysql可能会忽略启动不成功
mysqld_safe Logging to '/****/mysql'
如果mysql忽略授权启动不成功,查看mysqld_safe的mysql所在路径是否正确,可以按如下操作

做备份
sed -i 's#报错路径#实际安装路径l#g' /实际安装路径/bin/mysqld_safe     
*****************

  多实例忘记密码找回

  1.停止mysqld  选择从上到下,存在风险

pkill mysqld  
killall mysqld
killall -9 mysqld 

  2.忽略授权启动mysql

mysql_safe --defaults-file=/data/3306/my.cnf --skip-grant-tables &

  3.登录mysql,并修改密码

mysql -S /SOCKPATH/mysql.sock
update mysql.user SET password=password('新密码') where user=root host='localhost';
flush privileges;
quit

  4.重启登录

mysqladmin -uroot -p'新密码' shoutdown -S /data/3306/mysql.sock
mysql -uroot -p -S /data/3306/mysql.sock
                          --完成

 

history 历史记录 会记录下mysql登录时的用户和密码

  /root/.bash_history 会记录命令行的操作    及时使用history -c 清空命令历史,文件中也会记录

  /root/.mysql_histosry 会记录mysql命令行的操作

 将HISTCONTROL=ignorespace 定义在/etc/profile中,以后命令行中第一个为空格将不再记入历史

 source /etc/frofile 生效

 

  

 

posted on 2016-02-23 21:09  hy-小山  阅读(201)  评论(0)    收藏  举报