尝试使用终端从终端启动 MySQL 时,mysql -u <username> -p<password>出现以下错误:
mysql: [错误] 未知变量 'sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
在 MySQL 正在寻找 .cnf 文件(通过运行找到它们sudo /usr/sbin/mysqld --verbose --help | grep -A 1 "Default options")的三个可能的位置中,只/etc/mysql/my.cnf存在。其中只有一个目录,包括!includedir /etc/mysql/conf.d/. 在那里,/etc/mysql/conf.d/mysql.cnf有以下几行:
[mysql]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Run Code Online (Sandbox Code Playgroud)
四处寻找答案,找不到任何答案。一一尝试从模式列表中排除特定的“坏模式”,它们都无法识别。
只有完全注释掉这一行,我才能登录并启动 MySQL。
有谁知道问题可能是什么?
平台和操作系统方面:
我有一个数据库,其中 DBCC CHECKTABLE 在许多小表或空表上运行需要超过 15 分钟。当它完成时,没有失败或错误。服务器上其他所有内容的性能都处于非常可接受的状态。同时没有其他东西在运行。
我还尝试了 DBCC CLEANTABLE 并使用全扫描更新了统计信息。
我使用的是 SQL Server 2016 企业版 (13.0.5201.2)
示例表:
CREATE TABLE [Schema1].[Table1](
[col1] [int] NOT NULL,
[col2] [nvarchar](100) NOT NULL,
[col3] [xml] NOT NULL,
CONSTRAINT [PK_1] PRIMARY KEY CLUSTERED
(
[col1] ASC,
[col2] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud) 我已经创建了我的实体关系图(为简洁起见为 ERD)并且它具有派生属性。
当谈到使用关系模式进行数据库设计时,我已经设计了我的表并正确链接了所有内容。
我不知道是否应该在我的表中添加一个具有派生属性的列?例如,派生属性计算如下:
Total = Price * Quantity它与以下说明性表架构有关:
Customer (
ID,
CustomerName,
ItemsID,
Total
);
Run Code Online (Sandbox Code Playgroud)
应该Total包括在Customer表中吗?
我们的工作场所已开始扫描所有文件,而不是手动将它们保存在档案等中。
平均而言,我们每次扫描 1,000 个文档(每天大约发生 30 次)。
每次我们扫描 1,000 个文档时,我们都会收到少量的 OCR 错误/警告。
是否可以将最低和最高顺序号提供给变量并让 SQL Server 输出不在最低和最高顺序号之间的表中的所有缺失顺序号的列表?
例如
OCROrderNo
---------------
9001
9002
9006
9007
9008
9009
Run Code Online (Sandbox Code Playgroud)
最低编号 9001,最高编号 9009
MissingOrderNos
--------------------
9003
9094
9005
Run Code Online (Sandbox Code Playgroud)
根据答案,这就是我正在尝试的:
DECLARE @Start INT = 1497389
, @End INT = 1498264
SELECT @Start + N - 1
FROM dbo.Numbers
WHERE N <= ( 1 + @End - @Start )
EXCEPT
SELECT [ORDERNUMBER]
FROM [dwdata].[dbo].[ORDERS]
ORDER BY [ORDERNUMBER] DESC
Run Code Online (Sandbox Code Playgroud)
导致:
消息 207,级别 16,状态 1,第 10 行
无效的列名“ORDERNUMBER”。
如果语句包含 …
我经常看到语法
Declare @var int;
Set @var = 1;
Run Code Online (Sandbox Code Playgroud)
但是您可以在声明时设置变量
Declare @var int = 1;
Run Code Online (Sandbox Code Playgroud)
后一种选择有问题吗?我是否遗漏了一些内部的东西,或者在您不应该在声明中声明和设置变量的所有情况下都不起作用?
我问是因为我听到了我没想到的副标题。就像 Aaron Bertrand小写数据类型一样,msdn 也没有说明,但已在社区中找到。
我试图更好地理解 SQL 中的数字类型,并且读到十进制类型总是需要 17 个字节。但是,MS Docs列出了一个表格,指示使用的空间量取决于小数的精度。所以我尝试使用该datalength功能对其进行测试。
create table tbl_TestDec(dec1 decimal(19,4), dec2 decimal(20,4), dec3 decimal(9,4))
insert into tbl_TestDec
select 1, 1, 1
select datalength(dec1), datalength(dec2), datalength(dec3) from tbl_TestDec
Run Code Online (Sandbox Code Playgroud)
这输出:
5 5 5
Run Code Online (Sandbox Code Playgroud)
我期待9 13 5或17 17 17。我正在使用 SQL Server 2005。所有小数都是 vardecimal 还是我误解了 datalength 函数?
我正在处理的应用程序的核心功能似乎只是关联实体。因此,一对多关系会产生“元数据”,这些“元数据”只会为我们的应用程序功能提供(以一种或另一种方式)关联实体。
现在我们有一个实体关系图 (ERD),它有很多一对多(超过 10 个表)和只有一个关联实体。它对该模型或应用程序有何看法?
是否可以改进,即,如果改进 ERD 以添加更多关联实体,应用程序是否可以绕过更多功能?
关联实体很少是否意味着应用程序的功能不会很丰富?
其他注意事项
我想知道的是:如果项目范围说明书导致 ERD 只有一个多对多关系和十几个一对多关系,那么这是否意味着该项目没有解决很多问题(功能)除了只数字化大量数据?
我认为,如果多对多较少,它们一开始只会镜像(除非我们为其他目的创建连接查询......)。
或者简单地说:大量的多对多关联是否意味着软件的功能将比少对多的软件更丰富(不要在这个想法中包括连接查询)?
我的数据库在我的 Windows Server 2016 标准上运行良好。数据库管理系统为 Microsoft SQL Server 2017 Express。
今天我添加了一个新的表格和内容,一切都很好。我尝试打开数据库图并收到错误消息:
如果图像不起作用,消息是:
无法作为数据库主体执行,因为权限“dbo”不存在,无法模拟此类主体,或者您没有权限。(Microsoft SQL Server,错误:15517)
我的服务器上没有任何变化 - 没有更新等。
我可以访问所有表。当我查看我登录的帐户时,我可以看到我是数据库所有者,其他帖子建议这样做 - 但我以前并不确定为什么这会有所帮助。
这个问题会影响我拥有的每个数据库。
唯一的区别是我现在使用以下脚本从计划任务创建每日备份
BACKUP DATABASE DBName TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL13.SQLEXPRESS\MSSQL\Backup\DBName .bak'
WITH NOFORMAT, INIT, NAME = N'DBName Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
Run Code Online (Sandbox Code Playgroud)
的结果
SELECT ORIGINAL_LOGIN(), USER_NAME(), SUSER_SNAME();
Run Code Online (Sandbox Code Playgroud)
显示
任何人都可以帮我检查这个 MySQL 配置吗?我有一个 VPS 32GB RAM - 8 个 vcpu 并运行 1 个电子商务。
MySQLTuner 返回给我:
Variables to adjust:
*** MySQL's maximum memory usage is dangerously high ***
*** Add RAM before increasing MySQL buffer variables ***
join_buffer_size (> 140.0M, or always use indexes with JOINs)
tmp_table_size (> 32M)
max_heap_table_size (> 32M)
table_open_cache (> 407)
Run Code Online (Sandbox Code Playgroud)
my.cnf设置为:
key_buffer_size = 256M
join_buffer_size = 140M
tmp_table_size = 80M
max_heap_table_size = 80M
thread_pool_size = 24
innodb_buffer_pool_instances = 6
innodb_buffer_pool_size = 6G
innodb_log_file_size = 768M …Run Code Online (Sandbox Code Playgroud) 我很难用英语写一些东西。我希望你明白。我使用了翻译器并对其进行了审查。
我创建了两个临时数据库。排序规则分别是“Korea_Wansung_CI_AS”和“Chinese_Taiwan_Stroke_CI_AS”。
我创建了一个带有类型列的临时表,VARCHAR(2048)我刚刚在INSERT这里创建了一个用于此表数据的过程。
当从使用 c++ oledb 的服务器调用存储过程时,该VARCHAR值被加密并作为 UTF-8 发送。
我们发送
我已经通过调试验证该值是使用普通 UTF-8 加密的。
'???' -> UTF-8 -> '\xed\x95\x9c\xea\xb5\xad\xec\x96\xb4'
“??????” -> UTF-8 -> '\xe9\x9f\x93\xe5\x9c\x8b\xe4\xba\xba\xe5\xad\xb8\xe5\x8f\xb0'
在这里,我有一个问题。
当通过数据库中的SELECT语句回读该表时,我们发现对于Korean_Wansung,字符串'matched by the Code Page 949' 正常出现。
但不适用于Chinese_Taiwan。存储在内存中的值本身似乎已损坏。
如果您从服务器获取该值并对其进行解码,那么对于 Korean_Wansung 而言,原始字符将显示为正常字符。
但是在中国的情况下,它不会正常出来。
我需要你的帮助。
如果您需要更多信息,我们会迅速回复您并上传。
谢谢你。
sql-server ×6
erd ×2
mysql ×2
architecture ×1
collation ×1
datatypes ×1
dbcc ×1
decimal ×1
except ×1
mysql-5.7 ×1
mysqltuner ×1
order-by ×1
t-sql ×1