sg

MySQLのrootパスワードを忘れてしまった件

MySQLのパスワード再設定

パスワードなんていちいち覚えていられるかや。

/etc/apache2$ mysql -u root -p
Enter password: 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

アカンで。アクセスできひん。

というわけでrootのパスワードを再設定するのである。

ハードウェア

  • CPU Intel Core i7 8700K BOX
  • MEM DDR4-2666 DIMM 16GB x 2
  • M/B GIGABYTE Z370 HD3
  • SSD Intel SSD 545s 512GB SSDSC2KW512G8X1
  • HDD SEAGATE ST4000DM004 4TB
  • G/B 玄人志向 GF-GTX1080Ti-E11GB/OC/DF

ソフトウェア

  • OS Ubuntu 18.04.1 LTS
  • PHP PHP 7.2.10-0ubuntu0.18.04.1 (cli) (built: Sep 13 2018 13:45:02) ( NTS )
  • MYSQL Server version: 5.7.24-0ubuntu0.18.04.1 (Ubuntu)
  • NVIDIAドライバ  NVIDIA-SMI 390.87 Driver Version: 390.87
  • CUDA Toolkit 10.0
  • cuDNN v7.3.1 (Sept 28, 2018), for CUDA 10.0
  • OpenBLAS
    • libopenblas-base/bionic 0.2.20+ds-4 amd64
    • libopenblas-dev/bionic 0.2.20+ds-4 amd64
  • python-numpy (1:1.13.3-2ubuntu1)
  • python-scipy (0.19.1-2ubuntu1)
  • python-matplotlib (2.1.1-2ubuntu3)
  • python-yaml (3.12-1build2)
  • HDF5
    • python-h5py (2.7.1-2)
    • libhdf5-serial-dev (1.10.0-patch1+docs-4)
  • graphviz (2.40.1-2)
  • python-pip
  • python-dev
  • pydot-ng-2.0.0
  • Bazel
    • openjdk-8-jre:amd64 (8u181-b13-0ubuntu0.18.04.1)
    • bazel (0.18.0)
  • Python 2.7.15rc1
  • pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)
  • virtualenv 15.1.0
  • GNOME 3.28.2

ネットの噂を利用して

いろいろ調べて、やってみる。

要はMySQLを止めて、セーフモードで立ち上げ、パスワードを再設定しなさい。

/etc/ssl$ sudo mysqld_safe --skip-grant-tables &
[1] 2539
/etc/ssl$ 2018-12-09T02:50:00.623374Z mysqld_safe Logging to syslog.
2018-12-09T02:50:00.633111Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2018-12-09T02:50:00.640928Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

/var/run/mysqld ディレクトリがないと嘆いている。

じゃあ作ってあげよう

/var/run$ sudo mkdir mysqld

そして

/var/run$ sudo mysqld_safe --skip-grant-tables &
[1] 4738
/var/run$ 2018-12-09T02:54:59.931578Z mysqld_safe Logging to syslog.
2018-12-09T02:54:59.941322Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2018-12-09T02:55:00.047035Z mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
2018-12-09T02:55:02.506878Z mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

なんやねん。勝手に終わってやがりますよ。

MySQL 5.7系

から上記の方法はうまく行かないのかも。

/etc/mysql/ 配下にあるcnfファイルの設定を変更し、[mysqld]にskip-grant-tablesを追記する。

[mysqld]
skip-grant-tables

そしておもむろに、

/var/run$ /etc/init.d/mysql start
[ ok ] Starting mysql (via systemctl): mysql.service.
/var/run$ mysql -u root

うまくパスワードなしてログインすることに成功。

mysql> use mysql;
mysql> UPDATE user SET authentication_string=password('xxxx') WHERE user='root';
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
/var/run$ /etc/init.d/mysql restart
[ ok ] Restarting mysql (via systemctl): mysql.service.
/var/run$ mysql -u root -p
Enter password: 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

駄目やないか、、、あ、よく考えたら sudo する必要がありました、、、

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です