1. 命令行输入以下命令,可以无密码启动服务。
mysqld --console --skip-grant-tables --shared-memory
效果图如下:
2. 服务启动后,以空密码登入系统。
mysql.exe -u root
3. 执行 sql 命令设置 root 的用户密码。
UPDATE mysql.user SET authentication_string='123456' WHERE user='root' and host='localhost';
4. 切换到 MySQL 的安装目录 bin 目录下执行命令:
mysql -u root -p
输入密码,回车。
可以用 命令查看一下默认安装的数据库:
show databases;
查询 mysql 库的所有表:
use mysql;
show tables;
看到默认初始化了mysql数据库,其中user表里面存储MySQL用户信息。我们可以看一下默认MySQL用户:
select user,host,authentication_string from mysql.user;
管理员 root 的 host 是 localhost,代表仅限 localhost 登录访问。如果要允许开放其他 ip 登录,则需要添加新的 host。允许所有ip访问,可以直接修改成“%”。
但是执行 –skip-grant-tables 后,再创建用户时会提示错误:The MySQL server is running with the –skip-grant-tables option so it cannot execute this statement ,因为此时数据库是只读的权限,所以需要重新加载一遍权限表即:flush privileges;