0.忘记root密码如何登陆【重要】
第一步:找到mysql的设置文件,网上大部分目录是:
vim /etc/my.cnf文件;
但是我找了好久没找到这个文件,最终在这个目录下找到了
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]后添加skip-grant-tables(登录时跳过权限检查)
img
第二步:重启mysql服务
sudo systemctl restart mysqld
或者 service mysql restart
第三步:登陆mysql
登录mysql,输入mysql –uroot –p;直接回车(Enter)
SET PASSWORD FOR 'root'@'localhost' = 'your_password';
如果报:ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statementimg
输入:flush privileges;
img
再次输入:SET PASSWORD FOR 'root'@'localhost' = 'your_password';
退出:exit
img
再把刚才添加的skip-grant-tables删除或者注释掉
1.登录数据库
首先,你需要使用如下命令登录到数据库,注意,必须是root用户哦~
## mysql -u root -p
2.查询用户表
在Mysql中其实有一个内置且名为mysql的数据库,这个数据库中存储的是Mysql的一些数据,比如用户、权限信息、存储过程等,所以呢,我们可以通过如下简单的查询语句来显示所有的用户呢。
SELECT User, Host, Password FROM mysql.user;
你将会看到如下这样的信息:
+------------------+--------------+--------------+
| user | host | password |
+------------------+--------------+--------------+
| root | localhost | 37as%#8123fs |
| debian-test-user | localhost | HmBEqPjC5Y |
| johnsm | localhost | |
| brian | localhost | |
| root | 111.111.111.1| |
| guest | % | |
| linuxprobe | 10.11.12.13 | RFsgY6aiVg |
+------------------+--------------+--------------+
7 rows in set (0.01 sec)
如果你想增加或减少一些列的显示,那么你只需要编辑这条sql语句即可,比如你只需要显示用户的用户名,那么你就可以这样使用SELECT User FROM mysql.user;,
如何修改密码
SET PASSWORD FOR 'root'@'localhost' = 'your_password';
这是官网搜到的 ,验证无误
本意向修改一个用户的密码,网上搜到的命令为如下
update user set password=password(“新密码”) where user=”用户名”;
执行后报错 ERROR 1054(42S22) Unknown column 'password' in ‘field list’
错误的原因是 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string