web-dev-qa-db-ja.com

mysql_secure_installation "ソケット経由でローカルMySQLサーバーに接続できません"

ファイルを呼び出すときmysql_secure_installation次のようなエラーが表示されます

    [mysqk123@InstallZeMo bin]$ ./mysql_secure_installation 
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!


In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Enter current password for root (enter for none): 

my.cnfファイル内の指定されたsockファイルは/home/mysqk123/tmp/mysql.sockであり、redhat linux 5.3およびmysql 5.1.47を使用しています

Mysql_secure_installationスクリプトによって実行されるタスクは手動で実行できることを知っていますが、ここではスクリプトを実行する必要があります[タスクを手動で実行することはできません]

15
vidyadhar

このユーティリティは標準のインストールで使用することを目的としているため、パラメータを受け入れないように見えるため、オプションはほとんど表示されません。

  • 手順の実行時にデフォルトのソケットの場所を使用するようにMySQLを一時的に構成します(または、デフォルトの場所からカスタムの場所へのシンボリックリンクが機能する場合もあります)。
  • カスタムの場所を使用するようにスクリプトmysql_secure_installationを変更します。私がそれを正しく理解していれば、スクリプトは./.my.cnf.$$サブルーチンの46行目付近に一時構成ファイルを$$make_configはpid)として作成します。

次のように変更します:(免責事項:テストされていません:)

make_config() {
    echo "# mysql_secure_installation config file" >$config
    echo "[mysql]" >>$config
    echo "user=root" >>$config
    echo "password='$rootpass'" >>$config
    # add the line below
    echo "socket=/home/mysqk123/tmp/mysql.sock" >>$config
}

繰り返しますが、このスクリプトは標準の標準インストールで使用することを目的としています。非標準のソケットロケーションを使用するようにMySQLを設定できた場合は、アカウントの削除やパスワードの設定などの簡単なコマンドを手動で実行できることを上司(またはクライアント)に伝えます。

15
RandomSeed

必ずmysqlまたはmariadbを起動してください。例:

Sudo systemctl start mariadb.service
Sudo systemctl enable mariadb.service
5
d-_-b

ソケットファイルへのシンボリックリンクを作成して削除することもできます。

ln -s /home/mysqk123/tmp/mysql.sock /var/lib/mysql/mysql.sock
mysql_secure_installation # Do your stuff
rm -rf /var/lib/mysql/mysql.sock
4
Jacket

現在のセッションの環境変数を更新し、コマンドを実行します。例:

export MYSQL_UNIX_PORT=/home/mysql123/tmp/mysql.sock
./mysql_secure_installation
4
K M

同じエラーが発生しましたが、MySQLサービスを停止し、再起動するのを忘れていました。したがって、次のようなコマンドを使用して、mysqlサービスのステータスを確認することができます。

mysqladmin -u root -p status

エラーが発生した場合は、MySQLが実行されていないことを意味し、MySQLサービスを開始できます。または、必要に応じて、次のいずれかのコマンドを使用して、最初にそのステータスをチェックせずにサービスを開始しようとすることができます(すでに実行されている場合は機能しません)。

/etc/init.d/mysql start
service mysql start

システムがそのバージョンのMySQLを使用している場合は、mysqldmysqldに置き換えます。

1
Tom Bisciglia