我似乎无法重新创建一个我删除的简单用户,即使是MySQL中的root用户.
我的情况:之前存在用户'jack',但我从mysql.user中删除它以重新创建它.我在那张桌子上看不出这种痕迹.如果我执行此命令用于其他一些随机用户名,比如'jimmy',它可以正常工作(就像它最初为'jack'做的那样).
我做了什么来破坏用户'jack'以及如何撤消腐败以重新创建'jack'作为MySQL安装的有效用户?
见下面的例子.(当然,最初,'杰克'的创造和他的移除之间有很多时间.)
mysql> CREATE USER 'jack'@'localhost' IDENTIFIED BY 'test123';
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host from user;
+------------------+-----------------+
| user | host |
+------------------+-----------------+
| root | 127.0.0.1 |
| debian-sys-maint | localhost |
| jack | localhost |
| root | localhost |
| root | russ-elite-book |
+------------------+-----------------+
5 rows in set (0.00 sec)
mysql> delete from user where user = 'jack';
Query OK, 1 row affected (0.00 sec)
mysql> select user,host …Run Code Online (Sandbox Code Playgroud) 我使用php mysqli_connect登录MySQL数据库(全部在localhost上)
<?php
//DEFINE ('DB_USER', 'user2');
//DEFINE ('DB_PASSWORD', 'pass2');
DEFINE ('DB_USER', 'user1');
DEFINE ('DB_PASSWORD', 'pass1');
DEFINE ('DB_HOST', '127.0.0.1');
DEFINE ('DB_NAME', 'dbname');
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if(!$dbc){
die('error connecting to database');
}
?>
Run Code Online (Sandbox Code Playgroud)
MySQL Server ini文件:
[mysqld]
# The default authentication plugin to be used when connecting to the server
default_authentication_plugin=caching_sha2_password
#default_authentication_plugin=mysql_native_password
Run Code Online (Sandbox Code Playgroud)
与caching_sha2_password在MySQL服务器ini文件,它不可能在所有与用户1或用户2登录;
错误:mysqli_connect():服务器请求的客户端[caching_sha2_password]未知的身份验证方法...
与mysql_native_password在MySQL服务器ini文件,有可能与USER1登录,但用户2,同样的错误;
如何caching_sha2_password在mySql Server上登录?