linux下mysql root密码的一些事

今天本地连接mysql,结果告知:
ERROR 2002 (HY000): Can’t connect to local MySQL server throughsocket ‘/var/run/mysqld/mysqld.sock’ (2)

好吧,这只是因为窝没有开启mysql服务。所以:
/etc/init.d/mysql start

这回可以了吧,开始连接mysql:
mysql -pXXXXXXXXXX
Warning: Using a password on the command line interface can beinsecure.
ERROR 1045 (28000): Access denied for user ‘root’@’localhost'(using password: YES)

握草,这是什么警告?原来第一句的Warning是说,直接在命令行中写上密码传递给mysql是不安全的。
第二句ERROR当然是因为窝的XXXXXXX密码错了。
所以窝就去重置root密码了。

先停止mysql服务:
/etc/init.d/mysql stop

然后安全模式启动mysql。其实是跳过签名验证啦。
mysqld_safe –skip-grant-tables&
这个窝们用&让他在后台运行。不然要再开终端啦。

然后直接到mysql库
mysql -uroot mysql

更改mysql库的user表
update user set password=password(“XXXXXXXX”) whereuser=”root”;
好吧,XXXXXXX就是窝的新密码,具体几个X?

最后更新:
flush privileges;

咳咳,重启mysql:
/etc/init.d/mysql restart

然后就可以愉快的进mysql了吧:
mysql -pXXXXXXXX
Warning: Using a password on the command line interface can beinsecure.
Welcome to the MySQL monitor. Commands end with ;or \g.

结果,第一个Warning还在呢,不过呢还是成功连接上mysql了。
因为这只是警告级别,并不是ERROR,所以并不影响登入mysql。
最后,窝们来解决一下这个warning。

这样:
mysql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ;or \g.

23333就使用-p选项,来告诉mysql窝是会用密码滴。
然后切换到mysql命令行模式,来让你输入密码。

确实,直接在shell环境中写上密码,是有点不安全。

相关推荐