我只想在我的 PC(使用 Windows 8.1 x64)上安装 MySQL 服务器,没有 Workbench 或其他东西。所以我.zip从dev.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) 我正在尝试计算旧记录。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。为什么?
我的任务是执行 SQL Server 2000 到 2005 的迁移。我将进行并行迁移。我从几个不同的来源阅读,我可以:
在 SQL Server 2000 上执行数据库备份,将该备份传送到新硬件并在 SQL Server 2005 中恢复数据库;或者
分离 SQL Server 2000 上的数据库,将数据和日志文件复制到新硬件并附加 SQL Server 2005 中的文件。
这些方法有区别吗?哪个最安全?
我已经完成了使用升级顾问检查数据库的升级前任务,并且在迁移之前我没有要解决的警告。
任何意见都会很受欢迎。
鉴于下表
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)
我想删除address和body相同的所有行。换句话说,根据address和消除重复body,只留下第一次出现。
我有 3 个表,我想在其中生成UsersCategoryLink.
如何在表中插入包含表UserCategoryLink中UserID随机用户和表中User随机 id 的列Categories。在这个SQL 小提琴中,您可以看到带有一些值的表。
UsersCategoryLink 必须填充随机用户和类别。UserID和CategoryID是主键,所以每个值都必须是唯一的。我将在我的数据库中编辑一些假数据。但是如果我为每一行和每一列生成随机数,它就没有我想要的那么随机。结果可以在下图中看到。
这是我使用的代码:
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 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) 我有两个表,我想用随机值的表的 ID更新GebruikerID表中的列。TopicGebruiker
你还必须知道以下几点:
Topic.GebruikerID引用Gebruiker.ID.Gebruiker(列ID)中,必须更新到表Topic(列GebruikerID)中。这里有一些图片。
如何选择所有带有%in 的记录?我认为这段代码不起作用。
SELECT column1, column2 FROM table WHERE column1 LIKE '%%%'
Run Code Online (Sandbox Code Playgroud)
%零、一个或多个字符%皮肤百分比谁能建议我它是如何工作的?我使用 MS-SQL 服务器。
提前致谢
如何遍历 SQL Server 表中的所有行并编辑列?你知道的:
creatie每次一分钟都必须对该列进行编辑。所以第一个必须是 15:00:00,第二个 15:01:00,第三个 15:02:00 等等。我使用了下面的查询,但最大 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 …