MariaDB或MySQL遇到的问题
问题解释:要想成功登录mysql必需满足两点
1.本机是否有权限登录mysql(如果你是远程的话)
2.密码是否正确
以上报错是拒绝访问所以权限问题和密码错误都有可能,YES和NO只代表你是否输入了密码。无法看出密码是否正确。
先解决密码(这里默认你不记得密码):确认密码没错可直接检查权限
修改密码解决方案一
1.修改 my.cnf 配置文件
在 /etc/my.cnf 配置文件中【mysqld】下面的最后一行加入 skip-grant-tables
2.重启MariaDB服务
systemctl restart mariadb
3.登陆mariadb并修改密码
在命令行中,输入 mysql -u root -p
命令然后回车,当需要输入密码时,直接按enter键,便可以不用密码登录到数据库当中。
修改密码后,执行flush privileges
后退出。
[root@localhost Desktop]# mysql -uroot -p
Enter password:
MariaDB [(none)]> use mysql;
Database changed
MariaDB [mysql]> update user set password=password('root') where user='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 5 Changed: 0 Warnings: 0
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
4.注释掉之前加上的 skip-grant-tables后重启
mysql服务
systemctl restart mariadb
5.用新密码重新登陆mariadb测试即可
权限检查
登录mysql并选择mysql数据库
[root@localhost Desktop]# mysql -uroot -p
Enter password:
MariaDB [(none)]> use mysql;
Database changed
此时我们可以看到 均只有本机(本地)才能登录mysql,此时我们需要加上权限使其能远程连接登录。
MariaDB [mysql]> grant all privileges on *.* to root@"%" identified by "mycisco.cc";
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
此“%”代表给所有主机赋予远程访问权限,也可以直接填写指定IP。
此时再查询就可以看到权限已经加上了
此时再次尝试应该就没问题。