作業環境
centos6.9
mysql5.6
概要
しばらく放置していたサーバーのMYSQLにログインしようとしたらこういうエラーが出た
# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
やったこと
mysql止めようとしたらコマンドが違うらしい
# service mysql stop mysql: unrecognized service
service系のコマンドはこうすると見つかると聞いた
# ls /etc/rc.d/init.d/ | grep mysql mysqld
mysqlを止める
# service mysqld stop Stopping mysqld: [ OK ]
セーフモードで起動してテーブルの権限をスキップする
# mysqld_safe --skip-grant-tables & 180810 10:18:18 mysqld_safe Logging to '/var/log/mysqld.log'. 180810 10:18:18 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
このままとコマンド入力できないので[ctrl]+を押して出ること
mysqlにパスワード無しでログインする
# mysql -u root
ログインできたらmysqlの設定テーブルをuseする
> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed
現在登録されているユーザーを一応確認しよう
> select * from user;
今回はユーザーをすべて削除してから新しくrootユーザーを作ることにした。
> truncate table user; > flush privileges;
ローカルからだけ入れるrootを作成。
すべてのSQLが使えてユーザーを作れる設定で作成する。
[/sql]
> grant all privileges on *.* to root@localhost identified by ‘パスワード’ with grant option;
> flush privileges;
[/sql]
rootユーザーが設定できたか確認してみる
> select * from user;
> exit;
再起動する
# service mysqld restart 180810 11:26:10 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended Stopping mysqld: [ OK ] Starting mysqld: [ OK ] [1]+ Done mysqld_safe --skip-grant-tables
パスワード無しでログインできないか確認、エラーが出ればOK
# mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
先程設定したパスワードでログインできるか確認、ログインできればOK
# mysql -u root -p
おわり。