报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 或 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 是 MySQL 数据库服务器拒绝了对 root 用户的访问请求的错误信息。
解决方法:
- 修改 my.ini/my.cnf 配置文件
在 MySQL 安装目录下找到 my.ini 或 my.cnf 文件,添加或修改以下内容:
复制代码[mysqld]
skip-grant-tables
保存并关闭文件。
- 重启 MySQL 服务
使用管理员身份打开命令行,输入以下命令:
复制代码net stop mysql
net start mysql
- 登录 MySQL
使用以下命令登录 MySQL:
复制代码mysql -u root -p
不需要输入密码,直接回车。
- 修改 root 用户密码
在 MySQL 命令行中输入以下命令来修改 root 用户密码:
复制代码update user set authentication_string=password('新密码') where user='root';
flush privileges;
其中,'新密码' 是新的 root 用户密码。
- 退出 MySQL
输入以下命令退出 MySQL:
复制代码quit;
- 重启 MySQL 服务
使用管理员身份打开命令行,输入以下命令:
复制代码net stop mysql
net start mysql
- 测试是否成功
使用以下命令测试是否成功:
复制代码mysql -u root -p
输入新的密码,如果成功则可以登录。
注意:在修改密码过程中,需要确保 MySQL 服务已经停止,然后才能进行修改。如果您在修改密码过程中遇到问题,可以尝试重新启动 MySQL 服务或重新编辑 my.ini/my.cnf 文件。
创建多个用户在 MySQL 中可以通过以下步骤来完成:
- 连接到 MySQL 服务器
使用以下命令连接到本地服务器:
复制代码mysql -u root -p
输入密码后,您将成功连接到 MySQL 服务器。
- 创建数据库
使用以下命令创建一个名为 "mydatabase" 的数据库:
复制代码CREATE DATABASE mydatabase;
这将在 MySQL 服务器上创建一个名为 "mydatabase" 的数据库。
- 创建用户
使用以下命令创建一个名为 "myuser" 的用户:
复制代码CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
这将在 MySQL 服务器上创建一个名为 "myuser" 的用户,并为其设置密码为 "mypassword"。请注意,'localhost' 表示该用户只能从本地主机连接到 MySQL 服务器。如果要允许该用户从任意主机连接,请使用 '%' 代替 'localhost'。
- 授予用户权限
使用以下命令授予 "myuser" 用户对 "mydatabase" 数据库的所有权限:
复制代码GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
这将授予 "myuser" 用户对 "mydatabase" 数据库的所有权限。如果只希望授予特定权限,可以将 "ALL PRIVILEGES" 替换为具体的权限,如 "SELECT, INSERT, UPDATE, DELETE" 等。
- 刷新权限
使用以下命令来刷新权限:
复制代码FLUSH PRIVILEGES;
这将刷新 MySQL 服务器上的权限,使新的用户和权限设置生效。
- 重复步骤 3-5 创建多个用户
可以重复步骤 3-5 创建多个用户,并将用户名、密码和数据库名称相应地修改。
总结:
- 连接到 MySQL 服务器:mysql -u root -p
- 创建数据库:CREATE DATABASE mydatabase;
- 创建用户:CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
- 授予用户权限:GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
- 刷新权限:FLUSH PRIVILEGES;
在实际应用中,您可以根据需要修改数据库名称、用户名和密码,并设置不同的权限。