vagrantでMySQL勉強用にcentos7で環境構築
(初投稿)
プログラミング学び始めて5ヶ月目です。
実務経験なし、就職活動中。現在夏休み。
備忘録兼ねてアウトプット練習で投稿をこれから続けていきたい所存。
ところどころおかしなところあると思います。飴主体でご指摘いただけると幸いです。
前提
ホストos: Mac10.14.6
vagrantの初期設定済(ubuntu環境作成したことがある)
やったこと(目次)
- centos7で仮想環境作る
- とりあえずフォルダを作る
- Vagrantfileを作る。
- Linuxbrewインストール
- curlとかgitとか入れる。
- Linuxbrewダウンロード&インストール。
- パス通す&環境変数の設定する。
- 略(zshインストール&かっこヨク)
- MySQLのダウンロードまで
- mariaDBの削除。
- MySQLのダウンロードとインストール。
- 起動から初期設定まで
- 起動&永続化
- 初期設定
- その他
さて
centos7で仮想環境作る
とりあえずフォルダを作る。
vagrant環境下で
mkdir centos7
(名前は任意)
そして
Vagrantfileを作る。
cd centos7
移動して
Vagrantfileを作りましょう。
vagrant init centos/7
この呪文でVagrant fileができると。
そしたらvagrant up&haltして
Linuxbrewインストール
curlやらgitやらインストールしましょう
~~```yum groupinstall ‘Development Tools’ && sudo yum install curl git m4 ruby texinfo bzip2-devel curl-devel expat-devel ncurses-devel zlib-devel
**ではないらしい**
上みたいなコマンドを打ってくださいって記事がなかなかの数残ってるので要注意です。
centos7で、というかRed Hat Enterprise Linux 7ではyumが変更されましたとのこと。
```zsh
yum -y groupinstall base "Development tools" --setopt=group_package_types=mandatory,default,optional
この記事CentOS7 で yum groupinstall が出来ないんですけど。。。に助けられたです。
さて
Linuxbrewをインストールしましょう
漠然とbrewという文字を打ち込みたい、そんな私でした。
Macを買った5ヶ月前google先生に「Mac 買ったらやること」でひたすらググってた時に
「Homebrewを入れましょう」
「Homebrew入れなきゃ何も始まんないよね」
「Hお目bれw」
とどこの記事にも書いてあったのでとりあえず入れたのは今は昔。
HomebrewはMacOS用のパッケージ管理ツール
これのLinux版がLinuxbrewですね。
Linuxbrew何がいいかっていうと
- rootいらねえ
- home dirに入れれちゃう
- ディストリビューションの package manager に依存しねえ
ってとこ。2に関しては正直まだよくわかってない。
前置きが長くなりましたが以下のコマンドでインストール
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
そしてこのまんまだとパスが〜〜〜ってエラー出てきますんで
test -d ~/.linuxbrew && PATH="$HOME/.linuxbrew/bin:$HOME/.linuxbrew/sbin:$PATH"
test -d /home/linuxbrew/.linuxbrew && PATH="/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$PATH"
test -r ~/.bash_profile && echo "export PATH='$(brew --prefix)/bin:$(brew --prefix)/sbin'":'"$PATH"' >>~/.bash_profile
echo "export PATH='$(brew --prefix)/bin:$(brew --prefix)/sbin'":'"$PATH"' >>~/.profile
この4行そのまんまペッってする。
確認しましょう
brew doctor
>>>Your system is ready to brew.
こんな感じでbrew先生に疾走感が感じられたらオッケーです。
Linuxbrew のススメ
大いにパク参考にさせていただきました。
略(zshインストール&かっこヨク)
小生、vimmerは変態と伺い、憧れたのでエディタはvim(練習中)
そしてiTerm2 + zshでターミナル環境構築してる故
ここにてzshとvimの設定を行う。
長くなりそうなんで割愛
そのうち別記事書き <ここら辺に> リンク貼ります。
MySQLのダウンロードまで
mariaDBの削除。
rpm -qa | grep mariadb
>>>mariadb-libs~~~~~~~~~~~~~
#ほうほう、ちゃんと入っているな
# えいっ
yum remove mariadb-libs
# 関連ライブラリも、えいっ
sudo rm -rf /var/lib/mysql
# 一応消えたこと確認
rpm -qa | grep mariadb
なんでもmariaDBはMySQLとは互換性があるけど、どっちもあると競合起こすのでみんな消すらしい?
言ってることはわかるけどどういう挙動になって何が困るのかよく想像つかないから今度わざと競合させてみたいと思う。
MySQLのダウンロードとインストール。
やっとここまできました。
# MySQLを公式レポジトリからダウンロード
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
# 最新版を確認してください
# インストール
yum install mysql-community-server
これでOK!!
ちな
MySQL最新版確認用
こういうとこに飛びます。
そしたら
OS確認して右側のDownload
(今回の場合だったら上から二番目のRed Hat Enterprise Linux 7/ Oracle Linux 7てやつですね)
Download押すと
こんな画面に行きます。
左下の
No thanks,just start my download
のURLとって
rpm -ivh (とってきたURL)
とコマンド打ってダウンロードです。あとはさっきの通りにインストールまでしてください。
あと少しです、、頑張れ、、
起動から初期設定まで
起動&永続化
# 起動
sudo systemctl start mysqld.service
# 永続化
sudo systemctl enable mysqld.service
はい、秒。
初期設定
最低限しましょね
詳しいことはわかんないんでググって他の記事見つけてください(放)
まず、なんか自動でパスワード初期設定されてるみたいなんで、それを見つけましょう。
# 自動で初期設定されてるパスワードを確認
sudo grep password /var/log/mysqld.log
>>2019-10-04T11:35:51.505412Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: password
# この部分ですね => password
そしたら行きましょう初期設定。
mysql_secure_installation
って打つと下みたいにいくつか質問出てくるんでynで答えていってください。
日本語訳つけてます。ご参考に。
Enter password for user root:
# 初期に入ってるパスワード入力
Change the password for root ? ((Press y|Y for Yes, any other key for No) :
# 訳)どうする?パスワード変えとく?
New password:
# 新しく設定する任意のパスワード
Re-enter new password:
# 再入力
Remove anonymous users? (Press y|Y for Yes, any other key for No) :
# 訳)今、誰でも入れんねんけど、匿名除外しとく?
Disallow root login remotely? (Press y|Y for Yes, any other key for No) :
# 訳)リモートでrootは入れんようにした方がええやんな?
Remove test database and access to it? (Press y|Y for Yes, any other key for No) :
# 訳)テスト用データベース作らんくてもええ?
Reload privilege tables now? (Press y|Y for Yes, any other key for No) :
# 訳)ほなすぐ反映するで!?
初期設定完了す。おめでとうございます。
その他
###ログイン
# root でログイン
mysql -u root
mysql -u ユーザ名 -p
Enter password: [パスワード]
Vagrantfileのリアルタイム反映
config.vm.synced_folder ".", "/vagrant", type:"virtualbox"
こんなものあるなんて知らなかったです。
ubuntuの方こんなの書いてないのに、リアルタイム同期されてる。
なんで?
~fin~
(初投稿)
お付き合いありがとうございました。