我安裝了mysql服務器,它也包含數據。我試圖從Ruby代碼連接到MySQL。爲此,我使用gem install mysql
安裝了mysql gem。我的程序中的連接部分在下面給出當連接到mysql顯示套接字錯誤
require 'rubygems'
require 'mysql'
require 'csv'
$user_name = "root"
$pas_wrd = "password"
def mysql_connect(db_name)
begin
db = Mysql.real_connect("localhost", "#{$user_name}", "#{$pas_wrd}", "#{db_name}")
return db
rescue Mysql::Error => e
puts "Error code: #{e.errno}"
puts "Error message: #{e.error}"
puts "Error SQLSTATE: #{e.sqlstate}" if e.respond_to?("sqlstate")
end
end
它是前一天寫的,完成了工作。但是,當我嘗試使用相同的代碼它顯示了一個MySQL的寶石錯誤,像'初始化'沒有找到。通過搜索,我找到了像重新安裝寶石的解決方案。重新安裝我用戶命令rvmsudo gem install mysql
。上述問題解決了。但它顯示了另一個錯誤,如
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
我嘗試使用mysql -u root -p
手動它也呈現出同樣的錯誤。
我的mysql my.cnf
內容如下。
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
tmpdir = /home/presoft/Documents
skip-external-locking
mysql未在我的系統中運行。
ps aux | grep mysql
presoft 3823 0.0 0.0 4368 816 pts/0 S+ 10:41 0:00 grep --color=auto mysql
我試着開始使用sudo /etc/init.d/mysql start
這得到
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql start
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start mysql
start: Job failed to start
結果任何一個可以幫助我找到一個解決方案,因爲含有大量的寶貴數據的數據庫使用。
謝謝
問候。
顯示下面給出的輸出** start:拒絕的發送消息,1個匹配的規則; type =「method_call」,sender =「:1.76」(uid = 1000 pid = 3962 comm =「start mysql」)interface =「com.ubuntu.Upstart0_6.Job」member =「Start」error name =「(unset)」 requested_reply =「0」destination =「com.ubuntu。upstart「(uid = 0 pid = 1 comm =」/ sbin/init「)** – apr 2013-02-14 05:39:44
嘗試用sudo服務mysql重啓 – 2013-02-14 05:42:50
start:作業啓動失敗 – apr 2013-02-14 05:49:34