CentOS里用yum安装的mysql,没有自动建立mysql数据库,root帐号的默认密码为空,若是要修改root帐号的密码,须要从别的数据库把mysql数据库导过来,才能修改。mysql
方法1: 用SET PASSWORD命令,我试了,这种方法可行,并且能够把密码设置为空,不需重启mysql服务
mysql -u root --我试了,若是mysql自己有密码,执行这个命令进不去
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
方法2:用mysqladmin
mysqladmin -u root password "newpass"
若是root已经设置过密码,采用以下方法
mysqladmin -u root password oldpass "newpass"
方法3: 用UPDATE直接编辑user表,我试了,这种方法可行,不能把密码设置为空,需重启mysql服务
mysql -u root
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;
在丢失root密码的时候,能够这样
mysqld_safe --skip-grant-tables&
mysql -u root mysql 我执行的时候,提示mysql数据库不存在,这台CentOS里用yum安装的mysql确实没有自动建立mysql数据库。
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';
mysql> FLUSH PRIVILEGES;sql