今天,测试环境下需要使用到mysql数据库;于是我使用yum安装方式快速部署了mariadb。使用的Linux系统版本为CentOS 7.x。 

  安装完成后,我很自然的使用mysql命令登陆,因为是刚安装的初始环境,结果报错了: 

[root@node ~]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

  第一次碰到这种情况。我检查了配置文件,没发现异常,另外yum安装,也是初始环境,应该不会有问题。无奈只能上网找找相关的案例试试。 

  还好,最后成功的解决了此问题。 

  解决步骤如下: 

1,首先停掉数据库服务: 

[root@node ~]# systemctl stop mariadb.service

2,使用mysqld_safe来启动mysqld服务器: 

[root@node ~]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
[1] 4120
[root@node ~]# 170301 11:04:57 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
170301 11:04:57 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

3,登录: 

[root@node ~]# mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 1
Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [mysql]>

4,修改root用户密码: 

MariaDB [mysql]> UPDATE user SET PASSWORD=PASSWORD('newpassword') where USER='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

MariaDB [mysql]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> QUIT
Bye
[root@node ~]#

5,使用修改后的root用户和新密码newpassword登录数据库: 

[root@node ~]# mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>


到此,该问题成功解决!