- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我制作了一个插件来收集 SCP:SL(游戏)服务器上玩家的数据并将其保存到 MySQL 数据库。
当连接到位于我的本地 VPS 之外的外部数据库(如 freemysqlhosting)时,它工作得很好。
我的本地 VPS 正在运行具有最新单声道版本的 10.1.37-MariaDB-0+deb9u1 Debian 9.6 MySQL Server
。
当我尝试本地连接到我的 MariaDB Linux MySQL 数据库(通过 localhost/127.0.0.1)时,问题就出现了。当连接到数据库时,我收到两个不同的错误:
当主机指定为“localhost”时,我收到此错误
Unhandled Exception:
MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts. ---> System.AggregateException: One or more errors occurred. ---> System.Net.Sockets.SocketException: An address incompatible with the requested protocol was used
at System.Net.Sockets.SocketAsyncResult.CheckIfThrowDelayedException () [0x00014] in <ac210d81537245bc838518cc8e845861>:0
at System.Net.Sockets.Socket.EndConnect (System.IAsyncResult asyncResult) [0x0002c] in <ac210d81537245bc838518cc8e845861>:0
at System.Net.Sockets.TcpClient.EndConnect (System.IAsyncResult asyncResult) [0x0000c] in <ac210d81537245bc838518cc8e845861>:0
at System.Threading.Tasks.TaskFactory`1[TResult].FromAsyncCoreLogic (System.IAsyncResult iar, System.Func`2[T,TResult] endFunction, System.Action`1[T] endAction, System.Threading.Tasks.Task`1[TResult] promise, System.Boolean requiresSynchronization) [0x00019] in <f2e6809acb14476a81f399aeb800f8f2>:0
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00011] in <f2e6809acb14476a81f399aeb800f8f2>:0
at System.Threading.Tasks.Task.Wait (System.Int32 millisecondsTimeout, System.Threading.CancellationToken cancellationToken) [0x00043] in <f2e6809acb14476a81f399aeb800f8f2>:0
at System.Threading.Tasks.Task.Wait (System.Int32 millisecondsTimeout) [0x00000] in <f2e6809acb14476a81f399aeb800f8f2>:0
at MySql.Data.Common.StreamCreator.GetTcpStream (MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings) [0x0001f] in <ffa6b95770be4daf8d8ae25ca059b16a>:0
at MySql.Data.Common.StreamCreator.GetStream (MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings) [0x00021] in <ffa6b95770be4daf8d8ae25ca059b16a>:0
at MySql.Data.MySqlClient.NativeDriver.Open () [0x00007] in <ffa6b95770be4daf8d8ae25ca059b16a>:0
---> (Inner Exception #0) System.Net.Sockets.SocketException (0x80004005): An address incompatible with the requested protocol was used
at System.Net.Sockets.SocketAsyncResult.CheckIfThrowDelayedException () [0x00014] in <ac210d81537245bc838518cc8e845861>:0
at System.Net.Sockets.Socket.EndConnect (System.IAsyncResult asyncResult) [0x0002c] in <ac210d81537245bc838518cc8e845861>:0
at System.Net.Sockets.TcpClient.EndConnect (System.IAsyncResult asyncResult) [0x0000c] in <ac210d81537245bc838518cc8e845861>:0
at System.Threading.Tasks.TaskFactory`1[TResult].FromAsyncCoreLogic (System.IAsyncResult iar, System.Func`2[T,TResult] endFunction, System.Action`1[T] endAction, System.Threading.Tasks.Task`1[TResult] promise, System.Boolean requiresSynchronization) [0x00019] in <f2e6809acb14476a81f399aeb800f8f2>:0 <---
at MySql.Data.MySqlClient.NativeDriver.Open () [0x00041] in <ffa6b95770be4daf8d8ae25ca059b16a>:0
at MySql.Data.MySqlClient.Driver.Open () [0x0000e] in <ffa6b95770be4daf8d8ae25ca059b16a>:0
at MySql.Data.MySqlClient.Driver.Create (MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings) [0x0004e] in <ffa6b95770be4daf8d8ae25ca059b16a>:0
at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection () [0x00006] in <ffa6b95770be4daf8d8ae25ca059b16a>:0
at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection () [0x0008a] in <ffa6b95770be4daf8d8ae25ca059b16a>:0
at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver () [0x0003f] in <ffa6b95770be4daf8d8ae25ca059b16a>:0
at MySql.Data.MySqlClient.MySqlPool.GetConnection () [0x0001c] in <ffa6b95770be4daf8d8ae25ca059b16a>:0
at MySql.Data.MySqlClient.MySqlConnection.Open () [0x0016d] in <ffa6b95770be4daf8d8ae25ca059b16a>:0
at DataCollector.RoundEventHandler.<OnWaitingForPlayers>g__CheckIfTableExists|3_0 () [0x000db] in <8dda65d2174e4f2a8af95550bb525546>:0
at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00014] in <f2e6809acb14476a81f399aeb800f8f2>:0
at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <f2e6809acb14476a81f399aeb800f8f2>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <f2e6809acb14476a81f399aeb800f8f2>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in <f2e6809acb14476a81f399aeb800f8f2>:0
at System.Threading.ThreadHelper.ThreadStart () [0x00008] in <f2e6809acb14476a81f399aeb800f8f2>:0
当我将主机指定为“127.0.0.1”时,错误看起来像这样(它太长了,所以我附上了它的pastebin)
这是我的插件的 C# mysql 连接代码,我使用 MySQLConnector v 8.0.13 连接到数据库:
MySqlConnectionStringBuilder connstr = new MySqlConnectionStringBuilder();
DatabaseConnInfo.dbhost = _plugin.GetConfigString("dc_dbhost");
DatabaseConnInfo.dbname = _plugin.GetConfigString("dc_dbname");
DatabaseConnInfo.dbuser = _plugin.GetConfigString("dc_dbuser");
DatabaseConnInfo.dbpass = _plugin.GetConfigString("dc_dbpass");
DatabaseConnInfo.dbport = (uint)_plugin.GetConfigInt("dc_dbport");
connstr.Server = DatabaseConnInfo.dbhost;
connstr.Database = DatabaseConnInfo.dbname;
connstr.UserID = DatabaseConnInfo.dbuser;
connstr.Password = DatabaseConnInfo.dbpass;
connstr.Port = DatabaseConnInfo.dbport;
_plugin.Info(connstr.ToString());
MySqlConnection conn = new MySqlConnection(connstr.ToString());
conn.Open();
string sql = "some sql statement";
MySqlCommand comm = new MySqlCommand(sql, conn);
conn.Close();
预期结果是与本地数据库建立有效连接,但由于错误而无法正常工作。
这些错误很奇怪,因为我可以轻松连接到外部数据库,本地连接似乎有问题,我不知道该怎么办。
最佳答案
使用“localhost”
的异常是SocketException:使用了与请求的协议(protocol)不兼容的地址
。原因是 Connector/NET 不支持 IPv6:bug 83649 .
正常的解决方法是使用 IPv4 地址,例如“127.0.0.1”
。但是,我不确定您尝试时遇到的新异常的原因。可能是 Connector/NET 与 Mono 不完全兼容?
我建议尝试MySqlConnector ,一个用于 .NET 的 OSS 替代 MySQL 库,看看它是否可以解决这两个问题。它fixes a lot of other bugs Connector/NET 中,并且应该是直接替代品。
关于c# - 在c# mono应用程序中通过localhost/127.0.0.1 mysql连接到本地MariaDB MySQL Linux服务器的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54431850/
谁能解释一下 localhost:5000 之间的区别和其他本地主机。 谢谢你。 最佳答案 localhost:5000 正在访问端口 5000 上的 localhost。 例如,如果您从浏览器访问它
假设本地 Python 脚本正在运行网络服务器。 有没有办法设置别名,以便http://localwebapp/等于 http://localhost:1234/ ? 编辑:或至少 http://lo
我对网络开发完全陌生。所以我总是看到“localhost”之类的东西并问自己:那是什么? 我感觉知道什么是“主持人”了。执行某事的东西。所以我的 Mac 是其上运行的所有内容的主机。那么“localh
我正在学习 xmpp 编程,我使用 sudo apt-get install ejabberd 在我的 ubuntu 15.10 上安装了 ejabberd,然后我通过添加管理员用户 ejabberd
是否总是可以 ping localhost 并解析为 127.0.0.1? 我知道 Windows Vista、XP、Ubuntu 和 Debian 都这样做,但每个人都这样做吗? 最佳答案 任何正确
我们在同一台计算机上使用客户端/服务器 RMI 通信(因此所有 ip 都应该是本地主机)。 我们启动注册表(使用默认端口1099) registry = LocateRegistry.createRe
我已经在 windows/system32/drivers/etc/ 中验证了我的主机文件其中有一个 localhost 的条目,但它不会去任何地方。我必须在 URL 中有一个端口号:http://1
我的主机上有一个守护程序在某个端口(即 8008)上运行,我的代码通常通过联系 localhost:8008 与守护程序交互。 我现在已经将我的代码容器化了,但还没有将守护进程容器化。如何将容器上的
在 SMTP 中,HELO 命令之后应该是什么,它有什么作用? 我在我的应用程序中发送电子邮件,我想知道我是否应该使用 localhost、发件人地址的域名 (me@example.com)、应用程序
我遇到无法打开本地主机Web应用程序的问题,因为Microsoft Edge会将URL http://localhost:3000重定向到https://localhost:3000。因此,我得到了错
一直在尝试设置我想用于登录的 Facebook 应用程序,以允许我在 Mac 的本地主机上测试它。 Facebook 抛出错误“应用程序域:http://localhost 不是有效域。”当我尝试将站
我在 MacOS 10.15 上使用 minikube 1.4.0 版和 Kubernetes 1.16.0 版。 我正在开发一些依赖于外部服务的授权/认证代码。在对服务的 API 调用中,我需要提供
当我用谷歌搜索这个问题时,我注意到这是 nginx 的一个常见问题。但是我从来没有在我的机器上使用过 nginx。我使用 MAMP,偶尔使用 Python Bottle。 现在,无论我的 MAMP/P
我在本地运行 Squid,我想通过在 localhost:3000 上运行的 Ruby 服务器通过 Squid 进行访问。 如果我尝试访问 localhost:3000,我会收到以下消息: The f
我使用 VS 2012 默认模板创建了 MVC4 移动应用程序。使用 http://localhost/mvcapplication1/ 在桌面浏览器中运行良好但是当我尝试在 WP8 Emulator
如何将默认的 xampp localhost c:xampp/htdoc 更改为另一个文件夹,即 c:/alan?当我使用 IP 地址时,我应该能够在 C:/alan 中查看我的网站文件。 感谢您帮助
我正在使用带有centos版本6(Fedora)的Vmware。我正在使用hadoop 1.0.4版本。我的 http://localhost:50070 地址显示为“无法连接”,但是 http://
我正在运行带有 apache 2.4.38 和 Maria DB 10.1.38 + PHP 7.3.3 的 Windows Server 2016 有时,我可以看到(使用 netstat)从 127
尝试通过 SSH 连接到本地主机时的调试信息 ssh root@localhost -vvv 输出 OpenSSH_6.6.1、OpenSSL 1.0.1f 2014 年 1 月 6 日debug1:
我正在使用 Node 和 Laravel 编写一个应用程序。我正在运行小型 laravel 本地服务器,该服务器解析为 http://localhost:8000 。我还在 localhost:300
我是一名优秀的程序员,十分优秀!