it-swarm-ja.tech

--skip-grant-tablesでMySQLを起動する方法は?

ルートユーザーをデータベースからロックアウトしました。ルートユーザーにすべての権限を取得する必要があります。パスワードがあり、MySQLにログインできます。ただし、rootユーザーにはすべての特権はありません。

45
Steven

私はこの質問のタイトルと同じ問題を抱えていたので、他の誰かがこの質問をグーグルで検索し、WindowsでMySQLを「skip-grant-tables」モードで起動したい場合、ここで私がやったことです。

管理者ツールのサービスを介してMySQLサービスを停止します。

My.ini構成ファイルを変更します(デフォルトパスを想定)

C:\Program Files\MySQL\MySQL Server 5.5\my.ini

またはMySQLバージョン> = 5.6の場合

C:\ProgramData\MySQL\MySQL Server 5.6\my.ini 

サーバーセクションの[mysqld]で、次の行を追加します。

skip-grant-tables

あなたが持っているように

# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this 
# file.
#
[mysqld]

skip-grant-tables

サービスを再度開始すると、パスワードなしでデータベースにログインできるはずです。

39
tonycoupland

MySQLでrootユーザーの制御を取り戻す方法。

危険:危険な操作

  • セッションsshを開始します(可能な場合はルートを使用)。
  • 編集my.cnfファイルを使用しています。

    Sudo vi /etc/my.cnf
    
  • Mysqldブロックに行を追加します。*

    skip-grant-tables
    
  • 保存して終了。

  • MySQLサービスを再起動します。

    service mysql restart
    
  • サービスの状態を確認してください。

    service mysql status
    
  • Mysqlに接続します。

    mysql
    
  • メインデータベースを使用します。

    use mysql;
    
  • ユーザーrootパスワードを再定義します。

    UPDATE user SET `authentication_string` = PASSWORD('myNuevoPassword') WHERE `User` = 'root'; 
    
  • ファイルmy.cnfを編集します。

    Sudo vi /etc/my.cnf
    
  • 行を消去します。

    skip-grant-tables
    
  • 保存して終了。

  • MySQLサービスを再起動します。

    service mysqld restart
    
  • サービスの状態を確認してください。

    service mysql status
    
  • データベースに接続します。

    mysql -u root -p
    
  • プロンプトが表示されたら、新しいパスワードを入力します。

このアクションは非常に危険です。ユーザーとパスワードなしで誰でも制限なくすべてのデータベースに接続できます。慎重に使用する必要があり、mustリスクを回避するためにすばやく元に戻す

31
gizmo_marco

lotsのことを試した後、これは私のために働いたものです:

Sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword'; 

そのため、最初にSudoを使用して、パスワードを必要とせずにmysqlにrootとしてログインします。次に、ルートのパスワードを更新します。

その後、mysqldを再起動しました:

Sudo service mysql restart

そして、newpasswordがルートにログインしました!

4
Carles Alcolea

Linuxシステムでは、次のことができます(他のOSでも同様です)

Mysqlプロセスが実行されているかどうかを確認します。

Sudo service mysql status

実行中の場合は、プロセスを停止します(すべてのmysqlツールを必ず閉じてください)

Sudo service mysql stop

停止に問題がある場合は、以下を実行してください

プロセスを検索:ps aux | grep mysqldプロセスを強制終了します:kill -9 process_id

スキップグラントを使用してmysqlをセーフモードで起動します

Sudo mysqld_safe --skip-grant-tables &
4
Arpit

mysql 5.6サーバーを使用していて、C:\Program Files\MySQL\MySQL Server 5.6\my.ini:に問題がある場合

C:\ProgramData\MySQL\MySQL Server 5.6\my.iniにアクセスしてください。

skip-grant-tablesを追加する必要がありますが、パスワードは必要ありません。

# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this 
# file.
#
# server_type=3
[mysqld]
skip-grant-tables

注:skip-grant-tablesでの作業が完了したら、C:\ProgramData\MySQL\MySQL Server 5.6\my.iniのファイルを復元する必要があります。

2
heesang

次のコマンドを使用します(「d」に注意してください):mysqld --skip-grant-tables

2
trailing slash

以下のコマンドをコンソールから実行して、コマンドプロンプトからmysqlデータベースを起動する際にユーザーテーブルの検証をスキップしてください

mysqld -skip-grant-tables
0
Bad Developer

これがWindowsボックスの場合、最も簡単なことは、サーバーを停止し、mysql構成ファイルにskip-grant-tablesを追加して、サーバーを再起動することです。

パーミッションの問題を修正したら、上記を繰り返しますが、skip-grant-tablesオプションを削除します。

設定ファイルの場所がわからない場合は、mysql send SHOW VARIABLES LIKE '%config%'と返された行の1つは、構成ファイルの場所を示します。

0
longneck

WAMP64サーバーを使用して、Windows 10を使用しています。 my.cnfおよびmy.iniを検索しました。 my.iniC:\wamp64\bin\mariadb\mariadb10.2.14が見つかりました。

同僚からの指示に従う:

  1. Wampserverからクイックスタートメニューを開き、[すべてのサービスを停止]を選択しました
  2. テキストエディタでmy.iniを開き、[mysqld]を検索しました
  3. 'skip-grant-tables'セクションの最後に[mysqld]を追加しました(ただし、その中に)
  4. ファイルを保存し、エディターを開いたままにします
  5. Wampserverメニューで、「Restart Services」を選択します。skip-grant-tablesオプションに関する警告が表示されます
  6. WampserverメニューでMySQLを選択してプロンプトを開きます
  7. パスワードを要求されたので、Enterキーを押してください
  8. コマンドALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';を貼り付けます
  9. 操作が成功したことを報告する必要があります(影響を受けるテーブルはありません)
  10. my.iniファイルで、'skip-grant-tables'行を消去し、ファイルを保存します
  11. WampServerメニューで、もう一度サービスを再起動を選択します

これで、新しいパスワードで入力できます。ここのすべての回答に感謝します。

0
Faltausername

My.iniファイルを編集してskip-grant-tablesを追加し、mysqlサーバーを再起動します。

[mysqld]
port= 3306
socket = "C:/xampp/mysql/mysql.sock"
basedir = "C:/xampp/mysql" 
tmpdir = "C:/xampp/tmp" 
datadir = "C:/xampp/mysql/data"
pid_file = "mysql.pid"
# enable-named-pipe
key_buffer = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log_error = "mysql_error.log"
skip-grant-tables
# Change here for bind listening
# bind-address="127.0.0.1" 
# bind-address = ::1 
0
Azouz Mohamadi