私はmysqlサーバーをインストールしており、データも含まれています。Rubyコードからmysqlに接続しようとしていました。その目的のために、 を使用して mysql gem をインストールしgem install 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 gem エラーが表示されます。検索すると、宝石を再インストールするような解決策が見つかりました。再インストールするには、コマンドを使用します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
それも同じエラーを示しています。
私のmysqlmy.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
データベースには大量の貴重なデータが含まれているため、解決策を見つけるのに役立つ人はいますか。
ありがとう
よろしく。