ローカル開発環境内で、誤ってMySQLのrootユーザを消してしまい、再設定した手順です。
MySQLを停止させる
sudo /etc/init.d/mysqld stop
MySQLをセーフモードで起動する
sudo /usr/bin/mysqld_safe --skip-grant-tables
セーフモードでMySQLを起動すると、パスワードなしで操作できるようになります。
起動中は今まで操作していたターミナルを操作できなくなるので、別の新しいターミナルを起動させます。mac(command + T or commant + N)
MySQLに接続する
新しいターミナルでMySQLに接続します。
mysql
rootユーザを再設定する
データベースを選択
use mysql
4行目でパスワードを入力し、コマンドを実行する。
INSERT INTO mysql.user
SET user = 'root',
Host = 'localhost',
password = Password('password'),
Select_priv = 'y',
Insert_priv = 'y',
Update_priv = 'y',
Delete_priv = 'y',
Create_priv = 'y',
Drop_priv = 'y',
Reload_priv = 'y',
Shutdown_priv = 'y',
Process_priv = 'y',
File_priv = 'y',
Grant_priv = 'y',
References_priv = 'y',
Index_priv = 'y',
Alter_priv = 'y',
Show_db_priv = 'y',
Super_priv = 'y',
Create_tmp_table_priv = 'y',
Lock_tables_priv = 'y',
Execute_priv = 'y',
Repl_slave_priv = 'y',
Repl_client_priv = 'y',
Create_view_priv = 'y',
Show_view_priv = 'y',
Create_routine_priv = 'y',
Alter_routine_priv = 'y',
Create_user_priv = 'y',
Event_priv = 'y',
Trigger_priv = 'y',
Create_tablespace_priv = 'y';
MySQLを再起動する
MySQLを抜ける
exit
再起動する
sudo /etc/init.d/mysqld restart
MySQLに接続できたら成功
mysql -u root -p
enter
password
ユーザを確認する
SELECT user, host FROM mysql.user;