![見出し画像](https://assets.st-note.com/production/uploads/images/45793414/rectangle_large_type_2_d6f2a74c1457a9c21aee89fab0375060.png?width=1200)
知ると便利、ちょっとした小技が嬉しい
どうも、じぇいかわさきです。
最近、Pythonのプログラミングの学習をしている中で、データベースとの連携とかいろいろとやっています。
しかし、実は今までの所、MariaDBを使う際に、いちいちターミナルを起動してマニュアルでMariaDBも起動させていたんです。
つまり、ターミナルを立ち上げる → MariaDBを立ち上げる という具合に2段階も踏んでMariaDBを起動させてから使用していたんです。
なんとも面倒くさいんですよね。
Windowsで言えば、スタートアップに登録するような事ができれば、OSが立ち上がって行く時点で起動が可能になるんですよね。
しかし、いくらmacとは言えアプリケーションではない物を、OS起動時に一緒に立ち上げるなんて、どうすればいいんだ?そう悩んでいました。
アプリなら、管理画面の中でウィルスバスターのように起動設定する画面が有るのですが、OSのもっと深い領域である、BSDのレベルでの話ですからちょっと違うんですよね。
Linuxとかだと、rc.dの中にパスと一緒に起動させたいサービスを書き込めば、立ち上がっていく途中でサービスが起動できるんです。
多分、macもこれと同じようなことをすればできると思うんですよね。
といいながら、自分の脳みそではすぐに思いつかなかったので、ネットで調べまくりました。
幾つか関係しそうなものが見つかったのですが、どれもちょっと古くてMySQLの自動起動方法なんです。
実はMySQLの派生がMariaDBで、mac上ではMariaDBを起動させる際も
mysql.server start
というコマンドで立ち上げているんです。
これはmac内のBSDの部分で、mysqlとmariadbにシンボリックリンクが張られているからではないかと思っております。
補足1
BSDとはBerkeley Software Distributionの略で、カルフォルニア大学バークレー校の開発者グループが開発し配布しているUNIX系OS。macOSはもともとが、NeXTSTEPがベースとなっており、NeXTSTEPはこのBSDがベースになっていたんです。
BSDの方がLinuxよりネットワークに強いと言われていました。
補足2
シンボリックリンク
UNIX系のOSでファイルやフォルダに対する要求を変わりに受け付けて、本来のファイルに中継するものを目的とするファイルのこと
補足3
NeXTSTEP(ネクストステップ)は、NeXTコンピュータのオブジェクト指向マルチタスクオペレーティングシステム (OS) であり、Marchカーネルが中心となったUNIX系OSで、BSDコードも取り入れられている。
話をもとに戻して、従ってmacでMariaDBを自動起動させるには、MariaDBをインストールした時に費用した、Homebrewを使うみたいなんです。
ここまでたどり着くに少々時間がかかりましたが、後はもうすんなりでした。
実際には、たった2つのコマンドを打ち込むだけで完了なんです。
今まで苦労していたのが馬鹿みたいですね。
$ brew tap homebrew/services
$ brew services start maridb
たったこの2行のコマンドで、自動起動するように書き込まれます。
コマンドを打ち込んだ後、Macを再起動させて立ち上がったらターミナルを起動し、何時も通りにMariaDBにログインするためのコマンドを打ってみます。
% mysql -u neo -p
ちゃんとパスワードを聞いてきます。これはMariaDBが既に起動しているからですね。
先の2行のコマンドにより、OS起動時にMariaDBが起動するように設定できました。
これで、Pythonのコードを書いてデータベースの接続をしたりする時に、今までのような2段階の処理をしなくても、すぐに使えるようになったのは非常に便利ですね。
少しずつですが、自分のMacはプログラミングの学習に最適な環境を手に入れつつあります。
既に、Dockerも自動起動していますので、仮想環境での評価もできるようになっています。
後は、自分のプログラミング能力を高めていくだけですね。
頑張って、コツコツと続けていこう。
いいなと思ったら応援しよう!
![じぇいかわさき@ものづくりアドバイザー兼エッセイニスト](https://assets.st-note.com/production/uploads/images/63277847/profile_80b6f5802ece174a9e85e1f6e813247d.png?width=600&crop=1:1,smart)