标签: windows

为什么 MySQL 说我内存不足?

我试图INSERT...SELECT用 JDBC 在 MySQL 中执行一个相当大的,我得到以下异常:

Exception in thread "main" java.sql.SQLException: Out of memory (Needed 1073741824 bytes)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
Run Code Online (Sandbox Code Playgroud)

由于我实际上并没有返回 ResultSet 对象,因此我认为 Java 堆空间应该不是问题。但是,无论如何我都试图提高它,但没有任何好处。然后我尝试在 MySQL Workbench 中执行该语句,我得到了基本相同的结果:

Error Code 5: Out of memory (Needed 1073741816 bytes)
Run Code Online (Sandbox Code Playgroud)

我应该有足够的 RAM 来完成这些操作(足以容纳我从中选择的整个表格),但我猜我需要调整各种设置以利用我的所有内存。我正在使用Windows Server 2008 AMI运行 Amazon EC2高内存双超大实例。我尝试摆弄 my.ini 文件以使用更好的设置,但据我所知,我可能会让事情变得更糟。这是该文件的转储:

[client]
port=3306
[mysql]
default-character-set=latin1
[mysqld]
port=3306
basedir="C:/Program Files/MySQL/MySQL Server 5.5/"
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
character-set-server=latin1
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=100
query_cache_size=1024M
table_cache=256
tmp_table_size=25G
thread_cache_size=8
myisam_max_sort_file_size=100G
myisam_repair_threads = 2
myisam_sort_buffer_size=10G
key_buffer_size=5000M
bulk_insert_buffer_size = 4000M
read_buffer_size=8000M …
Run Code Online (Sandbox Code Playgroud)

mysql windows memory jdbc configuration

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

SQL Server 已启动但未侦听任何端口

我新安装了 SQL Server 2012。尚未创建数据库。我可以使用 sa/password 打开 Management Studio。Binn\sqlservr.exe 作为服务启动,我可以在服务列表中看到它启动。但是,它没有侦听 1433 端口,甚至默认情况下也没有侦听任何端口,如下所示:

tasklist|find /I "sql"
Run Code Online (Sandbox Code Playgroud)

我有:

sqlservr.exe                  5668 Services                   0     40,112 K
Run Code Online (Sandbox Code Playgroud)

其中5668我认为是PID。然后获取 PID = "5668" 正在监听哪个端口:

netstat -ano | find /I "5668"
Run Code Online (Sandbox Code Playgroud)

但我除了空白什么都没有。另一方面,在本站搜索帖子后,我再次检查了我的 SQL Server 配置:开始->所有程序-> Microsoft SQL Server 2012 -> 配置工具 -> SQL Server 配置管理器-> SQL Server SQL Native Client 11.0配置 -> 客户端协议 -> TCP/IP -> 默认端口 1433。有 3 个服务,SQL Server(MyInstanceName)、SQL Server Agent(MyInstanceName) 和 SQL Server Browser。最后两个停止。

SQL Server 配置管理器-> SQL Server 网络配置-> MyInstanceName 的协议-> TCP/IP 默认禁用,在我启用它并重新启动服务后重复 netstat -ano …

sql-server windows

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

pgAdmin 4:如何在 Windows 中通过 SSH 隧道/接口建立连接

我安装了最新的 pgAdmin 4 (v2.1),但我发现(相关线程),目前,通过 SSH 隧道建立连接的唯一方法是使用另一个外部进程,pgAdmin 论坛中的一个示例说:

我设置了一个隧道,如下所示:

ssh -f dpage(at)hostname(dot)enterprisedb(dot)com -L 5999: hostname.enterprisedb.com:5432 -N
Run Code Online (Sandbox Code Playgroud)

(...) 我在 Mac 上运行,但同样的程序应该可以在 Linux 上运行。在 Windows 上,Putty iirc 中有一个隧道应用程序,但我不知道如何使用它。

我找到了一个简单的PuTTY 教程来使用 SSH Tunnel 建立连接

连接已建立,但看起来,当我尝试通过 pgAdmin 连接时,它失败或被拒绝(使用127.0.0.1:3306127.0.0.1:5432作为隧道的目的地)。为什么?

postgresql windows interface ssh pgadmin-4

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

MySQL 使用什么机制在 Windows Server 2008 上安排备份?

在 Windows Server 2008 上运行的 MySQL Server (v5.1.45-community) 上调度数据库备份时,使用什么机制来触发备份运行?我认为它正在使用 Windows 任务计划程序,但我没有看到这些备份的任何明显任务。SQL Server 使用单独的代理服务。MySQL中有类似的东西吗?

附加信息:备份是使用 MySQL Administrator 设置的。我知道如何安排备份,但它们没有运行,我正在寻找有关从哪里开始排除故障的见解。

mysql backup windows mysql-5.1

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

连接到基于 Windows 的 Postgresql 的问题

其他计算机甚至无法在我的 Windows 7 机器上找到正在运行的 Postgresql 9.1。本地连接当然工作得很好。

在我的 pg_hba.conf 我有:

#office subnets
host    all             all             192.168.##.0/24            md5
host    all             all             192.168.##.0/24            md5
Run Code Online (Sandbox Code Playgroud)

在 postgresql.conf 我有(是的,端口 5433 是故意的):

listen_addresses = '*'      # what IP address(es) to listen on;
                # comma-separated list of addresses;
                # defaults to 'localhost', '*' = all
                # (change requires restart)
port = 5433             # (change requires restart)
Run Code Online (Sandbox Code Playgroud)

netstat -a -bcmd 中运行后,我发现:

 Can not obtain ownership information
   TCP    0.0.0.0:5433           XXXXX-PC:0           LISTENING
Run Code Online (Sandbox Code Playgroud)

哎呀,我什至做了一个防火墙例外:

Protocols and Ports:
   Local port: …
Run Code Online (Sandbox Code Playgroud)

postgresql windows

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

MySQL在两台服务器上的性能差异巨大

我们在两台不同的机器上安装了一个 MySQL 服务器,一个测试服务器和一个生产服务器,都是 Windows,它被一个 web 应用程序使用。

问题是在执行某些查询时两台机器之间存在巨大的性能差异(生产服务器是较慢的一台)。两台服务器中的 MySQL 版本是相同的,甚至配置文件也是相同的(唯一的区别是数据的路径以及生产服务器除了错误之外不记录任何内容的事实)。我所说的性能差异要大 3 或 4 个数量级(例如,测试服务器中的查询执行时间为 0.2 秒,而生产服务器中的查询执行时间为 84 秒)。

违规查询广泛使用带有“WHERE [...] IN [...]”的子句,这是我的理解,它们通常很慢,应该用 JOIN 替换。但是,我们使用的 MySQL 版本是 5.6.19,它会自动优化这些查询,这就是为什么它们在测试服务器中执行得很快(而且它们是我们无法更改的程序的一部分,因此我们无法手动优化它们)反正)。

正如我所说,MySQL 的安装和配置是相同的,所以我完全不知道问题出在哪里。一方面,我怀疑这一定是某种配置问题,因为程序和数据库是相同的,另一方面,这没有意义,因为配置是相同的。

服务器上的一些数据:
测试服务器:

  • 英特尔酷睿 2 四核 Q9400 @ 2.66GHz
  • 8GB 内存
  • Windows Server 2008 R2 标准版

生产服务器:

  • 英特尔至强 E5530 @ 2.40GHz
  • 5GB 内存
  • Windows Server 2012 R2 标准版

编辑:我忘了说一件重要的事情:正在执行更多的查询,这些查询使用“WHERE ... IN”子句来区分“违规”的那些。它们在两台机器上都执行得很快,这表明 MySQL 正确地优化了它们。某些查询已优化而其他查询未优化这一事实对我来说是个谜,如果这是实际问题,我不确定。

编辑 #2:这是两台服务器的配置文件:http : //pastebin.ca/2834906

编辑 #3:这是慢查询之一的解释:https ://mariadb.org/ea/v36zj 测试和生产中的解释完全相同。查询本身在这里:http : //pastebin.com/VXgBxXmt它已用自动格式化程序格式化,所以可能不是很清楚。正如你所看到的,是相当长和复杂的。它不是手工生成的,而是由软件自动生成的,它使用标准SQL 的方言,具有一些功能。

另外,更多信息:我们通过减少生产服务器中的数据并删除数据库中大部分不会使用的旧数据来临时修补该问题。当然,这不是解决方案,因为我们还需要旧数据,而且将来会成为问题。DB 不是那么大:完整的 DB 是 1308MB,目前生产的缩减版本是 …

mysql performance windows

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

从 .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
查看次数

是否有便携式 MySQL

出于教学和测试目的,我想运行 MySQL 而无需实际安装它。

我已经为 Macintosh 和 Windows 找到了可移植的 PostgreSQL,这很好,但是在 mySQL 中找不到相同的。

我知道我可以从流行的 Web 服务器包(例如 AMPPS 和 XAMPP)运行 MySQL,但它们无论如何都需要安装,并且超出了我的要求。

是否有适用于 OS X 和 Windows 的便携式应用程序可以完成这项工作?

谢谢

mysql windows mac-os-x

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

如何将 Windows SID 转换为 SQL Server server_user_sid?

有这个很好的 SQL Server 函数SUSER_SNAME可以将server_user_sid转换为用户名。这对于将众所周知的 Windows SID 转换为(可能已本地化的)用户名非常有用。

例子:

SELECT SUSER_SNAME(0x01020000000000052000000021020000)

-- yields 'BUILTIN\USERS' (or, on a German system, 'VORDEFINIERT\Benutzer')
Run Code Online (Sandbox Code Playgroud)

通过一些谷歌搜索和反复试验(=手动创建用户并sys.server_principals随后检查),我确定了以下等效项:

Built-in User/Group    Windows SID      SQL Server server_user_sid

BUILTIN\USERS          S-1-5-32-545     0x01020000000000052000000021020000
NT AUTHORITY\SYSTEM    S-1-5-18         0x010100000000000512000000
Run Code Online (Sandbox Code Playgroud)

将 Windows SID 转换为 SQL Server server_user_sids 的算法是什么?

sql-server windows users

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

从 SQL Server 查询外部 LDAP 服务器

我对查询 LDAP 服务器进行了广泛的研究,但到目前为止还没有解决。所以请高手帮忙

背景:我有一个客户端,其 LDAP 服务器是 OnPremise(虽然面向公众),我在防火墙内有一个 SQL Server(2012 SE)。外部 LDAP 和内部 SQL Server 之间的通信很好,因为我可以互相 ping 通。我还创建了一个远程域帐户,并在 SQL Server 上创建链接服务器时使用了该帐户。我还有我们的内部域控制器,它具有域信任关系。现在,我使用域帐户创建了 2 个链接服务器,但我无法在内部和外部查询 LDAP 服务器。我希望这是有道理的。无论如何,这是我的链接服务器的定义和我收到的错误

[已解决] 链接服务器到内部 LDAP 服务器:这是通过使用 ADuser@domain.com 而不是 domain/ADuser 解决的

USE [master]
GO

EXEC master.dbo.sp_addlinkedserver @server = N'ADSI', @srvproduct=N'Active 
Directory Service Interfaces', @provider=N'ADSDSOObject', 
@datasrc=N'adsdatasource'

EXEC master.dbo.sp_addlinkedsrvlogin 
@rmtsrvname=N'ADSI',@useself=N'False',@locallogin=NULL,
@rmtuser=N'Domain/ADUser',@rmtpassword='########'
Run Code Online (Sandbox Code Playgroud)

错误:

消息 7321,级别 16,状态 2,第 1 行准备查询时出错“SELECT *
FROM 'LDAP://Domain.com/OU=Accounts,DC=Domain,DC=com' --WHERE objectClass = 'User ' " 用于针对链接服务器 "ADSI" 的 OLE DB 提供程序 "ADSDSOObject" 执行。

链接服务器到外部 LDAP 服务器

USE …
Run Code Online (Sandbox Code Playgroud)

sql-server windows linked-server sql-server-2012 active-directory

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