设置弱密码
由于我是用于测试环境所以想将密码调整为弱密码
-
使用root用户或具有管理员权限的用户登录MySQL服务器。
-
执行以下命令进入MySQL命令行界面:
mysql -u root -p
首次安装时生成的随机密码可以使用
sudo grep 'temporary password' /var/log/mysqld.log
命令找到 -
输入密码并按Enter键登录到MySQL服务器。
-
执行以下命令来修改密码策略,允许设置简单密码:
SET GLOBAL validate_password.policy = LOW;
-
如果需要,可以修改密码长度要求。执行以下命令来设置密码最小长度(例如,设置为4):
SET GLOBAL validate_password.length = 4;
-
修改密码策略后,可以创建或更改用户的密码为简单密码。执行以下命令来创建或更改用户的密码:
ALTER USER '用户名'@'localhost' IDENTIFIED BY '新密码';
将’用户名’替换为要设置密码的用户名,'localhost’替换为适当的主机名,'新密码’替换为您要设置的简单密码。
-
完成上述步骤后,您已成功设置简单密码。
允许root远程访问
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
执行命令后发现报错
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY '123456' WITH GRANT OPTION' at line 1
去网上找了下原因,stackoverflow上边解释到。
从MySQL 8开始,您不再可以(隐式)使用GRANT命令创建用户。使用CREATE USER代替,后面跟着GRANT语句:
于是改成以下方法:
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'PASSWORD';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
执行完命令后从其他机器远程访问数据库提示Authentication plugin caching_sha2_password cannot be loaded
当出现"Authentication plugin caching_sha2_password cannot be loaded"的错误消息时,这通常是由于MySQL客户端尝试使用caching_sha2_password身份验证插件连接到MySQL服务器,但该插件在服务器上未启用或不可用。这可能是由于以下原因之一:
-
MySQL服务器版本不支持caching_sha2_password插件:较早的MySQL服务器版本可能不支持caching_sha2_password插件。请确保您的MySQL服务器版本符合要求。
-
未启用caching_sha2_password插件:在某些情况下,MySQL服务器可能未启用caching_sha2_password插件。您可以尝试启用该插件以解决此问题。
要解决此问题,您可以尝试以下方法:
-
更改MySQL用户的身份验证插件:将MySQL用户的身份验证插件更改为可用的插件,例如mysql_native_password。可以使用以下命令更改用户的身份验证插件:
ALTER USER '用户名'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
将’用户名’替换为您要更改的用户名,'localhost’替换为适当的主机名,'密码’替换为相应的密码。
-
修改MySQL服务器配置:编辑MySQL服务器的配置文件,通常为my.cnf或my.ini,找到并注释掉或删除以下行:
# default-authentication-plugin=caching_sha2_password
然后重新启动MySQL服务器。