どうしようもなくなったので、FreeBSD 12.1 の上のMySQL8のDBを初期化することにした。削除すべきファイルは、my.cnf (/usr/local/etc/mysql/my.cnf )の中に書いているDBのディレクトリのパスにある。その前にMySQLのサービスを止める。
# service mysql-server stop
# grep datadir /usr/local/etc/mysql/my.cnf
datadir = /var/db/mysql
# rm -rf /var/db/mysql/*
MySQLのテンポラリディレクトリなどが存在していることを確認する。なければ、以下のパーミッションで作成する。これがないと次に行かない。
# ls -l /var/db | grep mysql
drwxr-x--- 2 mysql mysql 512 5月 4 10:13 mysql
drwxr-x--- 2 mysql mysql 512 5月 4 10:27 mysql_secure
drwxr-x--- 2 mysql mysql 512 5月 4 10:27 mysql_tmpdir
初期化のコマンドを実行する。FreeBSDの場合、mysqldコマンドが、/usr/local/binの下ではない。
# /usr/local/libexec/mysqld --initialize --user=mysql
実行すると、ファイルができている。
# ls -lR /var/db/mysql
total 0
-rw-r----- 1 mysql mysql 0 5月 4 09:55 mysql-bin.index
ログファイルの最後の行に、rootユーザのパスワードが入っている。# tail -1 /var/log/mysqld-error.log
2020-05-04T01:33:37.875970Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: uunkEf7pA>kX
# service mysql-server start
Starting mysql.
立ち上がっていることをpsコマンドで確認する。
# ps ax |grep mysql
2289 - Is 0:00.03 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/usr/local/etc/mysql/my.cnf --basedir=/usr/local --da
3563 - I 0:00.68 /usr/local/libexec/mysqld --defaults-extra-file=/usr/local/etc/mysql/my.cnf --basedir=/usr/local --datadir=/va
3569 0 S+ 0:00.00 grep mysql
ログインできることを確認する。
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 8.0.19 Source distribution
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
root@localhost [(none)]>
うまくいったようだ。
# service mysql-server stop
# grep datadir /usr/local/etc/mysql/my.cnf
datadir = /var/db/mysql
# rm -rf /var/db/mysql/*
MySQLのテンポラリディレクトリなどが存在していることを確認する。なければ、以下のパーミッションで作成する。これがないと次に行かない。
# ls -l /var/db | grep mysql
drwxr-x--- 2 mysql mysql 512 5月 4 10:13 mysql
drwxr-x--- 2 mysql mysql 512 5月 4 10:27 mysql_secure
drwxr-x--- 2 mysql mysql 512 5月 4 10:27 mysql_tmpdir
初期化のコマンドを実行する。FreeBSDの場合、mysqldコマンドが、/usr/local/binの下ではない。
# /usr/local/libexec/mysqld --initialize --user=mysql
実行すると、ファイルができている。
# ls -lR /var/db/mysql
total 0
-rw-r----- 1 mysql mysql 0 5月 4 09:55 mysql-bin.index
ログファイルの最後の行に、rootユーザのパスワードが入っている。# tail -1 /var/log/mysqld-error.log
2020-05-04T01:33:37.875970Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: uunkEf7pA>kX
# service mysql-server start
Starting mysql.
立ち上がっていることをpsコマンドで確認する。
# ps ax |grep mysql
2289 - Is 0:00.03 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/usr/local/etc/mysql/my.cnf --basedir=/usr/local --da
3563 - I 0:00.68 /usr/local/libexec/mysqld --defaults-extra-file=/usr/local/etc/mysql/my.cnf --basedir=/usr/local --datadir=/va
3569 0 S+ 0:00.00 grep mysql
ログインできることを確認する。
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 8.0.19 Source distribution
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
root@localhost [(none)]>
うまくいったようだ。
※コメント投稿者のブログIDはブログ作成者のみに通知されます