2021年4月11日日曜日

MySQL エラーになる(何でだ)、起動エラーの原因とパスワードの再設定

 しばらく、サーバー上のMySQLを利用していなかった。

Welcome to Ubuntu 14.04.6 LTS (GNU/Linux 2.6.32-042stab128.2 x86_64)

 * Documentation:  https://help.ubuntu.com/

New release '16.04.7 LTS' available.

Run 'do-release-upgrade' to upgrade to it.




久しぶりteraから、mysqlを起動したら、エラーになってしまった

結論

・エラー内容(Can't connect to local MySQL server through socket

・落ちていたようだ!

・起動できない

 →ソケットファイルを削除(/var/run/mysqld/mysqld.sock)

・起動できたが、パスワードのエラー(パスワードが替えられたか?)

・パスワードを再設定した

$mysqld --skip-grant-tables

$mysql -u root mysql

$mysql> UPDATE user SET Password=PASSWORD('my_password') where USER='root';

$mysql> FLUSH PRIVILEGES;

・新しいパスワードでログインができた、めでたしめでたし!













  Can't connect to local MySQL server through socket '/tmp/mysql.sock'

起動してみたら、エラーになった


ソケットファイルを削除した

rm mysqld.sock


確認 etc/mysql/my.cnfのファイルを確認する

/etc/mysql/my.cnf  ファイル内のsocketの場所


 [client]

 port= 3306

 socket= /var/run/mysqld/mysqld.sock


起動できたみたい

oot@localhost:/etc/mysql# /etc/init.d/mysql status

mysql start/running, process 13672

root@localhost:/etc/mysql# /etc/init.d/mysql stop

mysql stop/waiting


root@localhost:/etc/mysql# /etc/init.d/mysql start

mysql start/running, process 11391

root@localhost:/etc/mysql# /etc/init.d/mysql status

mysql start/running, process 11391



一応、立ち上がったが…

ルートのパスワードで立ち上がらない

パスワードの再設定をしたよ

$mysqld --skip-grant-tables

$mysql -u root mysql

$mysql> UPDATE user SET Password=PASSWORD('my_password') where USER='root';

$mysql> FLUSH PRIVILEGES;



参考URL

https://superuser.com/questions/603026/mysql-how-to-fix-access-denied-for-user-rootlocalhost

147

Follow the steps below.

  1. Start the MySQL server instance or daemon with the --skip-grant-tables option (security setting).

    $ mysqld --skip-grant-tables
    
  2. Execute these statements.

    $ mysql -u root mysql
    $mysql> UPDATE user SET Password=PASSWORD('my_password') where USER='root';
    $mysql> FLUSH PRIVILEGES;
    

If you face the unknown field Password error above use:

update user set authentication_string=password('my_password') where user='root';
  1. Finally, restart the instance/daemon without the --skip-grant-tables option.

    $ /etc/init.d/mysql restart
    

You should now be able to connect with your new password.

$ mysql -u root -p

Enter password: my_password