0

私は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

データベースには大量の貴重なデータが含まれているため、解決策を見つけるのに役立つ人はいますか。

ありがとう

よろしく。

4

2 に答える 2

0

上記の回答のヒントから問題を解決しました。問題は、mysql サーバーが破損していたことです。

だから私は最初にコマンドを実行します

sudo apt-get purge mysql-common mysql-server

データを削除せずに、すべての mysql ファイルと構成を削除します。実行後、プロセスを注意深く監視し、警告やエラーが発生した場合は完全に対処してください。みたいな警告が出た

dpkg: warning: while removing mysql-common, directory '/etc/mysql' not empty so not removed.

そのため、ファイルを削除して、上記のコマンドを再実行しました。実行が成功した後。を使用してmysqlを再インストールしました

sudo apt-get install mysql-common mysql-server 

次に root パスワードを設定します。サーバーに入った後 データは安全です。

于 2013-02-14T07:46:47.960 に答える
0

使用する

service mysql start

これにより、mysql サービスが開始されます。新しい Linux マシンは mysql をサービスと見なします

于 2013-02-14T05:26:42.547 に答える