主机上找到配置文件
-
Windows:
my.ini
选择默认的安装路径,则配置文件在:
C:\ProgramData\MySQL\MySQL Server 5.7/my.ini
可能找不到
ProgramData
文件夹,这是因为一般是被隐藏了,可以直接复制上边路径到资源管理器,再访问即可。
-
Linux:
my.cnf
选择默认的安装路径,则配置文件在:
/etc/my.cnf
其他找到
my.cnf
的方法:
- 首先找到mysqld的路径:
which mysqld
出来的路径就是
mysqld
的路径。
- 敲命令:
/usr/local/mysql/bin/mysqld --verbose --help |grep -A 1 'Default options'
在这里就可以看到
my.cnf
的路径。
跳过登录时的权限检验
- 修改配置文件,在
[mysqld]
下一行加入:
[mysqld]
skip-grant-tables
- 重启
MySQL
服务:
-
Windows:
- 推荐:
服务
=>MySQl
=>重启此服务
- 依次执行
net stop mysql
、net start mysql
- 推荐:
-
Linux:
- 启动:
service mysql start
- 停止:
- 使用server方式:
service mysqld stop
- 使用mysqladmin方式:
mysqladmin shutdown
- 使用server方式:
- 重启:
service mysqld restart
service mysql restart
(5.5.7版本命令)
- 启动:
重新登录MySQL
- 重启后,用
mysql -uroot -p
登录:
- 可以
不需要密码
就可以登陆,因为跳过了登陆时的权限检验
。
mysql -uroot -p
设置新的密码
- 选择
mysql
数据库:
use mysql
- 修改密码:
update user set authentication_string = password ('new-password') where user = 'root';
这里要更改的是
authentication_string
, 而不是 ``password` 字段。否则就像下面的报错:mysql> update user set Password=password('new-password') where user='root'; ERROR 1054 (42S22): Unknown column 'Password' in 'field list'
- 删除配置文件中在
[mysqld]
下一行加入的:
[mysqld]
skip-grant-tables
- 重启
MySQL
服务
验证新密码登录
- 使用:
-
此时,需要
权限检验
-
务必删除配置文件中的
skip-grant-tables
,为了数据库的安全。
mysql -uroot -p
总结
以上所有的命令行过程,如下图: