ちんあなごのプログラミング学習帳

プログラミング勉強したての赤子

MENU

MySQL コマンド等

あなごです。
ポートフォリオを作り始めてから1ヶ月以上MySQLに苦しめられております。
今回はエラーが発生して苦しめられているときによく使うコマンドをまとめました。

インストール・サーバー立ち上げ編 (Homebrew内の場合)

$ brew install mysql@8.1
Homebrew経由でMySQLをインストールできます。
@先はバージョン名。

brew services start mysql Macの再起動後に自動的にSQLが再起動される

$ mysql.server start
Macの再起動後に自動的にSQLが再起動されない

$mysql -u root -p $mysql -u root -h 127.0.0.1 MySQL、起動。 (-p の方はパスワードを求められます)

$ which mysql
MySQLがどこにあるか教えてくれます。

cd /opt/homebrew/var/mysql/ mysqlの場所に移動

$ brew list
SQL内でMySQLが入っているかどうかを確認できます。

$ mysql --version
MySQLのバージョンが確認できます。

mysqld --help --verbose | grep my.cnf
my.cnfという設定ファイルがどこにあるか確認できます。
左上が一番優先順位が高いです。

/etc/my.cnf /etc/mysql/my.cnf /opt/homebrew/etc/my.cnf ~/.my.cnf 
                      my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default

sudo vi /etc/my.cnf MySQLの設定ファイルに書き込めます。

MySQL操作編

mysql> select user, host from user;
MySQL内のユーザー一覧を閲覧することができます。

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+

$ mysql.server stop
MySQLのサーバーを止めます。

$brew services stop mysql MySQLのサービスを止めることができます。

エラー編

いつもERROR! The server quit without updating PID file というエラーがよく発生する

$ sudo chown -R _mysql:_mysql /opt/homebrew/var/mysql*
$ sudo mysql.server start 

PIDファイルのあるディレクトリに権限を与えてからサーバーを起動させたら治った。

Can't connect to local MySQL server through socket '/tmp/mysql.sock'
これも親の顔より見慣れたエラー。

$sudo chown mysql:mysql /tmp
$sudo mysql.server start
$ mysql -u root -p 

tmpディレクトリに権限を与えて、これで治りました。

sudo scutil --get ComputerName sudo scutil --get LocalHostName sudo scutil --get HostName ホスト名を確認できる。

qiita.com

ps -ef | grep mysql プロセスが立ち上がっているかどうか確認用。

sudo kill -TERM ○○○○(プロセスの番号) プロセスを落とす

個人的に便利だなと感じたコマンド。 tail -1000 /opt/homebrew/var/mysql/$(hostname).err | grep Warning

↓こんな感じでエラーメッセージがすっきり見れるようになっております。
かなしいね。

2023-10-14T03:42:07.049119Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2023-10-14T03:42:07.050328Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/opt/homebrew/var/mysql' in the path is accessible to all OS users. Consider choosing a different directory.
2023-10-14T03:42:17.465903Z 0 [Warning] [MY-010097] [Server] Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path.
2023-10-14T03:42:17.467963Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /opt/homebrew/var/mysql/ is case insensitive
2023-10-14T03:42:17.729950Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2023-10-14T03:42:17.731167Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/opt/homebrew/var/mysql'/usr/local/opt/mysql@5.6/bin/mysql.server start/usr/local/opt/mysql@5.6/bin/mysql.server start

mysqld --upgrade=FORCE MySQLサーバーに強制的にアップグレードを行う。

brew uninstall mysql
MySQLをアンインストールして楽になりたい時のコマンド

関連ファイルを削除したいときは、下記のコマンドを片っ端から入力してます。

sudo rm -rf /usr/local/var/mysql/
sudo rm -rf /usr/local/var/mysql
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/Cellar/mysql
sudo rm -rf /usr/local/bin/mysql
sudo rm -rf /usr/local/var/mysql
sudo rm -rf /usr/local/share/mysql
sudo rm -rf /usr/local/opt/mysql
sudo rm -rf /etc/my.cnf
sudo rm -rf /opt/homebrew/var/mysql
sudo rm -rf /opt/homebrew/etc/my.conf
sudo rm -rf /opt/homebrew/etc/my.conf.default

qiita.com

Copyright ©エンジニアを目指すちんあなご All rights reserved.