Server version: 5.7.10 MySQL Community Server (GPL)
Run Code Online (Sandbox Code Playgroud)
在MySQL中,我有一个用户芒果.用户在创建它时工作得很好.但是,重新启动计算机后,尝试登录芒果会产生以下输出:
$ mysql -u mangos -p
Enter password:
ERROR 1524 (HY000): Plugin '*some_random_long_hash_I_cannot_remember' is not loaded
$
Run Code Online (Sandbox Code Playgroud)
它让我想起了密码哈希,所以在调查mysql.user后,我发现芒果没有密码!我更新了密码:
SET PASSWORD FOR 'mangos'@'127.0.0.1' = PASSWORD('mangos');
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
现在,我得到:
ERROR 1524 (HY000): Plugin '*3FBBDB84EA2B2A0EA599948396AD622B7FF68183' is not loaded
Run Code Online (Sandbox Code Playgroud)
3FBBDB84EA2B2A0EA599948396AD622B7FF68183与mysql的用户密码列中显示的数字相同,是一个与原始数字不同的数字.我还是无法登录.
如何让MySQL正确识别密码?这甚至是问题吗?
编辑:
mysql> SELECT * FROM mysql.user WHERE user = 'mangos' \G
*************************** 1. row ***************************
Host: localhost
User: mangos
Password: *3FBBDB84EA2B2A0EA599948396AD622B7FF68183
Select_priv: N
Insert_priv: N
Update_priv: N
Delete_priv: N
Create_priv: N
Drop_priv: N
Reload_priv: …Run Code Online (Sandbox Code Playgroud) 在Python中,我想socket.connect()在设置为非阻塞的套接字上使用。当我尝试这样做时,该方法总是抛出一个BlockingIOError. 当我忽略错误(如下所示)时,程序将按预期执行。当我在连接后将套接字设置为非阻塞时,没有错误。当我使用 select.select() 确保套接字可读或可写时,我仍然收到错误。
测试服务器.py
import socket
import select
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setblocking(0)
host = socket.gethostname()
port = 1234
sock.bind((host, port))
sock.listen(5)
while True:
select.select([sock], [], [])
con, addr = sock.accept()
message = con.recv(1024).decode('UTF-8')
print(message)
Run Code Online (Sandbox Code Playgroud)
测试客户端.py
import socket
import select
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setblocking(0)
host = socket.gethostname()
port = 1234
try:
sock.connect((host, port))
except BlockingIOError as e:
print("BlockingIOError")
msg = "--> From the client\n"
select.select([], [sock], [])
if sock.send(bytes(msg, 'UTF-8')) == len(msg):
print("sent ", …Run Code Online (Sandbox Code Playgroud) 是否有可能获得在Java中声明(但未实例化)的变量的类型?例如:
public class Foo {
FooTwo foo2;
FooTwo foo3;
FooThree foo4;
public static void main(String[] args) {
if (foo2.getClass() == foo3.getClass()) {
System.out.println("foo2 is the same type as foo3");
}
if (foo3.getClass() == foo4.getClass()) {
System.out.println("foo3 is the same class as foo4");
}
}
}
Run Code Online (Sandbox Code Playgroud)
随着输出:
foo2 is the same type as foo3
Run Code Online (Sandbox Code Playgroud)
显然,该方法getClass()不适用于未实例化的变量,因此该代码不起作用.我假设我要查找的信息存储在变量(指针?)的某处,以确保类型安全,并且可以访问它.有可能实现这种比较吗?
原因:我有一个带有几个声明变量的类.这些变量应该指向存储在另一个类的ArrayList中的对象.我正在尝试创建一个方法,将初始化(但未实例化)的变量作为参数,扫描arraylist以查找与初始化变量的类型匹配的对象,并将变量设置为对象(使变量指向对象).
另外:系统的要点是删除类的构造函数中的耦合.无法立即或在构造函数中实例化对象.
java ×1
mysql ×1
networking ×1
nonblocking ×1
object ×1
oop ×1
pointers ×1
python ×1
sockets ×1
sql ×1