Tag: 套接字

MySQL地狱……无法连接数据库/tmp/mysql.sock

更新:我已经停止正在运行的旧的mysql进程并导致一些混乱。 现在我想我只有更新的(5.1.40)版本在运行。 但是,它指向错误的数据文件。 它指向一个默认的安装数据文件,我希望它指向/var/mysql的现有数据文件。 这是/etc/my.cnf的一部分 # The following options will be passed to all MySQL clients [client] #password = your_password port = 3306 socket = /var/mysql/mysql.sock # Here follows entries for some specific programs # The MySQL server [mysqld] port = 3306 socket = /var/mysql/mysql.sock 这是指向较旧的mysql.sock。 我似乎无法在较新的MySQL安装的目录树中找到它?!? 除非它在某个地方模糊不清。 有人帮吗? 基本上我安装了一个较新的MySQL,现在需要使用我现有的数据启动这个新版本。 并理清这个mysql.sock的事情…. 我最近在Mac OS X Server上更新了MySQL,并且从rails应用程序连接到它有一段时间了。 […]

Ruby on Rails database.yml中的socket声明是什么?

在config / database.yml中使用socket声明有什么用? 示例代码: staging: adapter: mysql encoding: utf8 database: (database) pool: 5 username: (user) password: (pass) socket: /tmp/mysql.sock # <——— this line 我的应用程序有效,这条线是否被评论。 那有什么用呢? 我有什么理由可以留下它,评论它或改变它的价值?

在为Ruby on Rails应用程序设置mysql数据库时出现“无法通过socket连接到本地MySQL服务器’/var/run/mysqld/mysqld.sock’”错误

我整天都在努力,我需要一些帮助。 我正在尝试为我正在从github工作的RoR项目设置mysql数据库。 当我尝试在终端中设置数据库时,我收到以下错误: Eric-MacBook:~ eric$ cd ~/review_rocket Eric-MacBook:review_rocket eric$ rake db:setup Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ 我已经查看了20个关于SO的问题,但没有一个能够帮助我解决我的问题。 数据库已启动并正在运行,并且还设置了database.yml。 我现在有点生气了……拜托……帮助……为时已晚。 更新:我只看了我安装的gem,由于某种原因,它显示了mysql2 (见下文) Eric-Reas-MacBook:~ ericrea$ gem list *** LOCAL GEMS *** multi_json (1.8.2) mysql2 (0.3.13) net-sftp (2.1.2) 这对我来说有点奇怪…… 更新:这是我的database.yml看起来像: common: &common adapter: mysql2 encoding: utf8 reconnect: false pool: 5 user_name: xxxx password: xxxx […]

RESTful Web服务与数据密集型应用程序的套接字编程

我正在使用Ruby on Rails构建一个Web应用程序,它需要具有高度可伸缩性。 在此应用程序中,数据由移动客户端(大约20个字节)每秒产生。 所有这些数据必须在某个时刻传输到服务器,最好是尽快。 要完成此任务,我希望服务器充当RESTful服务。 客户端可以缓冲位置(例如每5到30秒),然后将其作为HTTP put请求进行拍摄,然后服务器可以存储它们。 我相信这个模型更容易实现,并且更好地处理大量流量,因为客户端可以保持缓冲数据,直到他们听到服务器的响应。 另一方面,我的老板想要使用套接字编程来实现服务器。 他认为套接字编程将导致更少的数据传输,这将提高系统的总效率。 我不能不同意这一点,但我认为考虑到现代带宽,HTTP的额外开销是值得的。 另外,我认为尝试维护数千(或数百万)的用户同时连接会导致自身问题,并大大增加服务器的复杂性。 老实说,我不知道解决这个问题的正确方法,所以我想我会把它发布在这里并得到比我更聪明的人的意见。 如果有任何答案包括所提出的解决方案的优缺点,我将不胜感激。 谢谢。 更新 我们现在已经刷新了一些额外的要求。 首先,移动客户端每月无法上传超过5 GB的数据。 在这种情况下,我们每个月每天八小时通话一条消息。 其次,我们希望尽可能少地组合消息。 这是为了确保移动客户端发生某些事情(比如车祸),我们会尽可能少地丢失数据。

使用ruby中的Net :: HTTP代理通过代理访问网站

我正在尝试使用Net :: HTTP :: Proxy访问QA环境网站来获取响应。但是每当我尝试连接时,我都会收到SocketError。 请找到我正在尝试使用的代码段。 proxy_addr = “http://autoproxy1.qa.com” proxy_class = Net::HTTP::Proxy(proxy_addr,80).start(“mywebsite.com”) 这是我得到的错误 SocketError: getaddrinfo: Name or service not known from /site/ruby/ruby-1.9.1-4/lib/ruby/1.9.1/net/http.rb:581:in `initialize’ from /site/ruby/ruby-1.9.1-4/lib/ruby/1.9.1/net/http.rb:581:in `open’ from /site/ruby/ruby-1.9.1-4/lib/ruby/1.9.1/net/http.rb:581:in `block in connect’ from /site/ruby/ruby-1.9.1-4/lib/ruby/1.9.1/timeout.rb:44:in `timeout’ from /site/ruby/ruby-1.9.1-4/lib/ruby/1.9.1/timeout.rb:82:in `timeout’ from /site/ruby/ruby-1.9.1-4/lib/ruby/1.9.1/net/http.rb:581:in `connect’ from /site/ruby/ruby-1.9.1-4/lib/ruby/1.9.1/net/http.rb:574:in `do_start’ from /site/ruby/ruby-1.9.1-4/lib/ruby/1.9.1/net/http.rb:569:in `start’ from /site/ruby/ruby-1.9.1-4/lib/ruby/1.9.1/net/http.rb:453:in `start’ from (irb):6 from /site/ruby/ruby-1.9.1-4/bin/irb:12:in `’ 通过配置浏览器的autoproxy设置,我可以使用Selenium访问同一个网站。 […]

基本的Ruby TCP服务器演示在启动时失败:`bind’:已经在使用的地址,Errno :: EADDRINUSE

我在Ruby中展示了一个简单的TCP服务器演示。 我的第一个演示是使用经典的C风格的bind-listen-accept-read-write-close方法。 这段代码第一次运作良好: require ‘socket’ class Server def start(bind: ‘127.0.0.1’, port: nil, backlog: 1) Socket.new(:INET, :STREAM).tap do |sock| sock.bind Addrinfo.tcp bind, port sock.listen backlog # the codes of client connecting with it here is for reproducing the issue more easily c = Socket.new(:INET, :STREAM) c.connect Addrinfo.tcp ‘127.0.0.1’, port client, client_addr = sock.accept puts “connected from […]

OpenSSL :: X509 ::显示错误域名证书的证书

我正在遍历域列表以查看a)是否有443个侦听器和b)收集ssl证书过期,签名算法和公用名。 所有拥有443监听器的域都会报告正确的ssl证书(与Chrome报告的内容相匹配),但是,有一个域无法正确报告 – myproair.com,它报告了parkinsonsed.com的证书 – 任何想法? # ssl cert lookup begin timeout(1) do tcp_client = TCPSocket.new(“#{instance[“domain”]}”, 443) ssl_client = OpenSSL::SSL::SSLSocket.new(tcp_client) ssl_client.connect cert = OpenSSL::X509::Certificate.new(ssl_client.peer_cert) ssl_client.sysclose tcp_client.close #http://ruby-doc.org/stdlib-2.0/libdoc/openssl/rdoc/OpenSSL/X509/Certificate.html date = Date.parse((cert.not_after).to_s) row.push(“#{date.strftime(‘%F’)} #{cert.signature_algorithm} #{cert.subject.to_a.select{|name, _, _| name == ‘CN’ }.first[1]}”.downcase.ljust(57)) end rescue SocketError row.push(“down”.ljust(57)) rescue Errno::ECONNREFUSED row.push(“connection refused”.ljust(57)) rescue Errno::ECONNRESET row.push(“connection reset”.ljust(57)) rescue Timeout::Error row.push(“no 443 […]

无法使套接字接受非阻塞ruby 2.2

我一直在寻找socket接受非阻塞。 我发现recv没有阻塞,但无论如何这对我没有好处。 我的脚本首先启动一个新的套接字类。 它使用ip 127.0.0.1和端口6112绑定到客户端。然后它启动multithreading。 multithreading需要@sock.accept。 “那就是封锁。 然后我使用了accept_nonblock。 虽然,这会给我带来以下错误: IO::EWOULDBLOCKWaitReadable : A non-blocking socket operation could not be completed immediately. – accept(2) would block 我使用的是Ruby 2.2。 注意:我不打算使用Rails来解决我的问题,或者给我一个捷径。 我坚持使用纯Ruby 2.2。 这是我的脚本: require ‘socket’ include Socket::Constants @sock = Socket.new(AF_INET, SOCK_STREAM, 0) @sockaddr = Socket.sockaddr_in(6112, ‘127.0.0.1’) @sock.bind(@sockaddr) @sock.listen(5) Thread.new(@sock.accept_nonblock) do |connection| @client = Client.new(ip, connection, self) @clients.push(@client) begin […]

具有非阻塞或multithreadingfunction的Ruby Tcp Server类

找不到任何可以帮助创建非阻塞/multithreading服务器的gem或类。 哪里可以找到?

如何在Ruby中建立启用SSL的TCP / IP连接

我需要与我的服务器建立TCP连接,该服务器具有启用SSL的端口,我需要访问该端口。 我需要发送一个XML文件并从服务器获取响应。 在启用SSL之前,我能够使用下面提到的代码从服务器获取数据。 require ‘socket’ myXML = ‘test_xml’ host = ‘myhost.com’ port = 12482 socket = TCPSocket.open(host,port) # Connect to server socket.send(myXML, 0) response = socket.recvfrom(port) puts response socket.close 现在我有一个’certi.pfx’,我需要建立一个连接,发送my_xml数据并获得响应。 如何才能做到这一点。 我还想知道我是否有’pem’和’key’文件,如何建立连接,发送my_xml数据并获得响应。 请帮忙。