两台服务器: 服务器A, 192.168.111.111 服务器B, 192.168.111.113 均装有mysql8, 均未开启防火墙, 服务器A msyql的配置文件 也没有bind-address什么的配置 需要从服务器B,远程连接服务器A,并对数据库test进行备份操作, 在服务器A中,已经使用mysql8创建了用户并授权如下: $ CREATE USER 'test1'@'192.168.111.113' IDENTIFIED BY 'abcABC123'; $ GRANT SELECT ON test.* to 'test1'@'192.168.111.113'; $ FLUSH PRIVILEGES; 在服务器B中,连接 $ mysql -h 192.168.111.111 -utest1 -p password: abcABC123 然后提示: ERROR 1130 (HY000): Host '192.168.111.111' is not allowed to connect to this MySQL server 求解
如何在mysql中统计json数组中某些值的计数? json数据如下:类型是json "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241013/0f2d13b7460eed1023bbaf8f9fe79c3c.png) 我想统计比如一个集合中:{"3467562849402896", "3467562861985809","3465044211793921"}的每个元素 被使用了几次?上述集合中的元素个数是不固定的,是输入的参数 方案: 我知道mysql8的JSON_TABLE是可以的,但是我的版本是5.7 我想到一个方案是这个:先用下面的sql找出来谁用了这个id,然后在代码中处理统计次数 where JSON_CONTAINS(tags ,'"3467562849402896"' , '$') OR JSON_CONTAINS(tags, '"3467562861985809"', '$') OR JSON_CONTAINS(tags, '"3465044211793921"', '$'); 还没有更好的方案呢?
为什么mysql中IS TRUE和=True的结果不一样? 我有一张user表,结构如下: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241010/3b184cf7b641490b2a606643909abbb1.png) 表中数据如下: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241010/031487a96340f11114f63cb7d07ad56a.png) 我尝试查询sql: SELECT * FROM `user` WHERE is_deleted IS TRUE 结果为: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241010/7164610e7f9f7463a16b90e6218dada6.png) 查询sql: SELECT * FROM `user` WHERE is_deleted = TRUE 结果为: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241010/d8cd2b734fd8dc4827c4c0a2092d5e68.png) 我用true或者false作为查询条件是因为:在java中tinyint能被转成Boolean,所以在查询的时候能直接传true或者false 有没有大佬知道为什么结果不一样呢?