CentOS里用yum安装的mysql,没有自动创建mysql数据库,root账号的默认密码为空,如果要修改root账号的密码,需要从别的数据库把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;