【My SQL】My SQLのアップグレードをした話
これまでNext.jsで簡単なアプリやこのブログを作成してみたけど、
データベースを使用したことがなかった。
仕事でできることを増やしたいなと考えた時に、DBをそれなりに使えるようになりたいと思った。
Next.jsでデータベースを操作する方法について調べているとprismaというORM(Object-Relational
Mapping ツール)に関する記事をよく見かける。
SQLを知らなくてもRDBに触れるとのことで、とりあえずやってみるにはいいのではないかと思いやってみることにした。
prismaでDBにテーブルを作るためにマイグレーションコマンドを実施した時、以下のようなエラーが出た。
Error: Column count of mysql.proc is
wrong. Expected 21, found 20. Created with MariaDB 100108, now running 100428.
Please use mysql_upgrade to fix this error
MariaDBのバージョンアップ後にデータベースのシステムテーブルが更新されていなかったことが原因だった。
MySQLのリファレンスによると具体的な手順としては、
MySQLのリファレンスによると具体的な手順としては、
- サーバーが実行されていることを確認
- mysql_upgradeを起動して、システムテーブルをアップグレード
- サーバを停止して再起動
チャットGPTの力も借りつつ以下のコマンドをターミナルで実行したら、なんとかできた。
備忘録程度に以下にまとめる
MySQLのバージョンアップ後のシステムテーブルの更新手順
MySQLサーバー起動スクリプトを実行。このコマンドはエラー発生時のサーバーの再起動などに使用できる安全機能が追加されているコマンドとのこと。
prismaのマイグレーションを実行したときにエラーを発生させていたためか、このコマンドじゃないと再起動がうまく行われなかった。
mysqld_safe --datadir
上記のコマンドを実行したのち、以下のコマンドを実行してシステムテーブルのアップグレードを実行した。
sudo /Applications/XAMPP/xamppfiles/bin/mysql_upgrade -u root -p
システムテーブルのアップグレードが無事に完了したため、prismaのマイグレーションが無事に実行された。