小编H. *_*lyn的帖子

从 .zip 安装 MySQL for Windows 并重置 root 密码

我只想在我的 PC(使用 Windows 8.1 x64)上安装 MySQL 服务器,没有 Workbench 或其他东西。所以我.zipdev.mysql.com/downloads下载了存档。这是 x86_64 版本 5.7.9 (MySQL Community Server (GPL)) 上的 Win64 下载。

我将它安装为 Windows 服务,但没有mysql数据库,只有information_schema. 所以我执行了这个:

mysql_upgrade.exe --upgrade-system-tables
Run Code Online (Sandbox Code Playgroud)

mysql创建了数据库。但是随之而来的是root用户发生了一些事情,因为我无法再访问mysql了。

所以我决定重置这个突然出现的密码(因为我之前没有它)。我在官方手册中建立了以下解决方案,我是这样启动服务器的:

mysqld.exe --skip-grant-tables --console
Run Code Online (Sandbox Code Playgroud)

然后我mysql没有密码打开:

mysql.exe –u root
Run Code Online (Sandbox Code Playgroud)

然后尝试重置root密码:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD(‘passhere');
Run Code Online (Sandbox Code Playgroud)

但我收到了这个错误:

错误 1131 (42000):您以匿名用户身份使用 MySQL,不允许匿名用户更改密码”。

这是什么?我怎么匿名了?所有命令都在cmd.exe管理员下执行。

在这种情况下,我应该怎么做才能重置 root 密码?

更新 1:我试图检查当前用户:

SELECT USER(), CURRENT_USER();
Run Code Online (Sandbox Code Playgroud)

这给出了:

+--------+----------------+
| USER() | CURRENT_USER() |
+--------+----------------+ …
Run Code Online (Sandbox Code Playgroud)

mysql windows password-recovery mysql-5.7

8
推荐指数
1
解决办法
4669
查看次数

COUNT(*) 给出超过 1 且 LIMIT 1?

我正在尝试计算旧记录。LIMIT 1在这种情况下,即使我设置了一些限制,为什么 Postgres 仍会给出 1160 的结果?

SELECT COUNT(*) FROM data WHERE datetime < '2015-09-23 00:00:00' LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
 count
--------
1160
(1 row)
Run Code Online (Sandbox Code Playgroud)

我期望的结果是 1 或 0,但结果是 1160。为什么?

postgresql count limits

7
推荐指数
1
解决办法
9601
查看次数

SQL Server 迁移还原备份与复制数据和日志文件

我的任务是执行 SQL Server 2000 到 2005 的迁移。我将进行并行迁移。我从几个不同的来源阅读,我可以:

  • 在 SQL Server 2000 上执行数据库备份,将该备份传送到新硬件并在 SQL Server 2005 中恢复数据库;或者

  • 分离 SQL Server 2000 上的数据库,将数据和日志文件复制到新硬件并附加 SQL Server 2005 中的文件。

这些方法有区别吗?哪个最安全?

我已经完成了使用升级顾问检查数据库的升级前任务,并且在迁移之前我没有要解决的警告。

任何意见都会很受欢迎。

sql-server-2005 sql-server migration sql-server-2000

6
推荐指数
1
解决办法
3836
查看次数

SQLite3:删除重复项

鉴于下表

CREATE TABLE `sms` (
    `_id`   INTEGER,
    `thread_id` INTEGER,
    `address`   TEXT,
    `person`    INTEGER,
    `date`  INTEGER,
    `protocol`  INTEGER,
    `read`  INTEGER DEFAULT 0,
    `status`    INTEGER DEFAULT -1,
    `type`  INTEGER,
    `reply_path_present`    INTEGER,
    `subject`   TEXT,
    `body`  TEXT,
    `service_center`    TEXT,
    PRIMARY KEY(_id)
);
Run Code Online (Sandbox Code Playgroud)

我想删除addressbody相同的所有行。换句话说,根据address和消除重复body,只留下第一次出现。

sqlite duplication

5
推荐指数
1
解决办法
2万
查看次数

为有关系的几个表生成假数据

我有 3 个表,我想在其中生成UsersCategoryLink.

如何在表中插入包含表UserCategoryLinkUserID随机用户和表中User随机 id 的列Categories。在这个SQL 小提琴中,您可以看到带有一些值的表。

  • UsersCategoryLink 必须填充随机用户和类别。
  • 每个用户必须有两个类别。
  • UserIDCategoryID是主键,所以每个值都必须是唯一的。
  • 我正在使用 SQL Server Express。

一些信息的表格和关系我想要什么

sql-server insert random relations

5
推荐指数
1
解决办法
1515
查看次数

为每行和每列生成随机数

我将在我的数据库中编辑一些假数据。但是如果我为每一行和每一列生成随机数,它就没有我想要的那么随机。结果可以在下图中看到。

没有随机数

这是我使用的代码:

WITH x AS 
(
    SELECT mintwee, mineen, nul, pluseen, plustwee 
    FROM Topic
)
SELECT mintwee = CAST(RAND()*100 AS INT),
       mineen = CAST(RAND()*100 AS INT), 
       nul = CAST(RAND()*100 AS INT),
       pluseen = CAST(RAND()*100 AS INT),
       plustwee = CAST(RAND()*100 AS INT)
FROM x
Run Code Online (Sandbox Code Playgroud)

和这个:

WITH x AS 
(
    SELECT 
        mintwee = CAST(RAND()*100 AS INT), 
        mineen = CAST(RAND()*100 AS INT),
        nul = CAST(RAND()*100 AS INT), 
        pluseen = CAST(RAND()*100 AS INT), 
        plustwee = CAST(RAND()*100 AS INT)
    FROM Topic
)
SELECT mintwee, mineen, …
Run Code Online (Sandbox Code Playgroud)

sql-server random

4
推荐指数
1
解决办法
1万
查看次数

“操作数类型冲突”与 DATE 列

我在 SQL Server Management Studio 中输入以下命令

insert into testtable ([product_name], [price], [expire_date], [expire_time]) 
  values ('Teapot', 10.00, 23/12/2012, '12:35:00')
Run Code Online (Sandbox Code Playgroud)

它产生这个错误:

操作数类型冲突:int 与日期不兼容

这些是列:

  Column name   |   datatype
----------------+---------------
product_name    | varchar(30)
price           | money
expire_date     | date
expire_time     | time(7)
Run Code Online (Sandbox Code Playgroud)

sql-server-2008

3
推荐指数
1
解决办法
6万
查看次数

用另一个表 B 的随机 ID 填充表 A

我有两个表,我想用随机值的表的 ID更新GebruikerID表中的列。TopicGebruiker

你还必须知道以下几点:

  • Topic.GebruikerID引用Gebruiker.ID.
  • 并非每个 ID 都在两个表中使用。
  • 必须生成的随机数存在于表Gebruiker(列ID)中,必须更新到表Topic(列GebruikerID)中。
  • 我在快速版中使用 SQL 服务器。

这里有一些图片。

  • 表之间的关系

  • Gebruiker-table的 ID

sql-server random

2
推荐指数
1
解决办法
6155
查看次数

选择带有 % 的列

如何选择所有带有%in 的记录?我认为这段代码不起作用。

SELECT column1, column2 FROM table WHERE column1 LIKE '%%%'
Run Code Online (Sandbox Code Playgroud)
  • 第一个和最后一个%零、一个或多个字符
  • 第二个%皮肤百分比

谁能建议我它是如何工作的?我使用 MS-SQL 服务器。

提前致谢

sql-server select like

0
推荐指数
1
解决办法
80
查看次数

遍历表中的所有记录并在 SQL Server 中编辑列

如何遍历 SQL Server 表中的所有行并编辑列?你知道的:

  • 跳过了很多ID。
  • creatie每次一分钟都必须对该列进行编辑。所以第一个必须是 15:00:00,第二个 15:01:00,第三个 15:02:00 等等。
  • 总共有 54 条记录。
  • 我使用的是 SQL Server 2014 Express 版本

我使用了下面的查询,但最大 ID 是 24697...所以循环很长。

declare @var datetime = '2015-10-19 0:0:0';
declare @counter int = 1;
declare @max int = (select max(id) from topic);

while (@counter <= @max) begin
    update Topic set Creatie = Creatie + @var where id = @counter;
    set @counter += 1;
    set @var += '0-0-0 0:1:0'
end;
Run Code Online (Sandbox Code Playgroud)

因为我每次都这样做@var += '0-0-0 0:1:0',我不知道 24697 次后的结果是什么(如果它有效)。

这是前 25 …

sql-server update sql-server-2014

0
推荐指数
1
解决办法
2万
查看次数