1. 準備
mysql と mariadb がインストールされていない仮想マシンを準備するか、新しい仮想マシンを作成します。注: この mysql のインストールは centos7 で実行されます。
公式 Web サイトからダウンロードできる Linux 環境用の mysql インストール パッケージを準備します。このページからmysql のバージョン 5.7 をダウンロードできます ( MySQL :: MySQL Community Server のダウンロード (アーカイブ バージョン) )。
2. コマンドラインを使用して操作する
あまり言うことはありません。直接操作を開始しましょう
1. ダウンロードしたインストール パッケージを Linux システムに転送します。
2. 必要なツールをインストールし、ソフトウェアの依存関係を解決します。
yum install cmake ncurses-devel gcc gcc-c++ vim lsof bzip2 openssl-devel ncurses-compat-libs net-tools -y
3. mysql のバイナリ インストール パッケージを解凍します。
tar xf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
4.解凍した mysql ファイルを/usr/localに移動し、名前を mysql に変更します
mv mysql-5.7.37-linux-glibc2.12-x86_64 /usr/local/mysql
5.新しいグループ mysql を作成します
グループ追加mysql
6.新しいユーザー mysql を作成します。このユーザーのシェルは /bin/false で、グループ mysql に属します。 -r は、これがシステム ユーザー(system)であることを意味します。
useradd -r -g mysql -s /bin/false mysql
7. ファイアウォールサービスをオフにする
サービスファイアウォールの停止
8. 起動時にファイアウォールが起動しないように設定する
systemctl ファイアウォールを無効にする
9. selinux を一時的にシャットダウンします。
セットフォース0
10. selinux を永久にシャットダウンする
sed -i '/^SELINUX=/ s/enforcing/disabled/' /etc/selinux/config
11. データを保存するための新しいディレクトリ、つまりmysql ウェアハウスを作成します。 -p はディレクトリを再帰的に作成することを意味します
mkdir /data/mysql -p
12. /data/mysql ディレクトリを変更する権限はmysql ユーザーと mysql グループに属しているため、mysql によって開始された mysql プロセスはこのディレクトリを読み書きできます。
chown mysql:mysql /data/mysql/
13. このディレクトリを、mysql ユーザーに読み取りと書き込みのみを許可し、mysql グループに読み取りと書き込みを許可し、他のユーザーには権限を与えないように設定します。
chmod 750 /データ/mysql/
14. /usr/local/mysql/bin/ ディレクトリに入ります。
cd /usr/local/mysql/bin/
15. mysql の初期化このステップでは、生成されたパスワードの保存に注意してください。つまり、損失を避けるために最後の行をコピーして保存できます。
同様: 2023-07-06T02:47:58.457334Z 1 [注意] root@localhost: HEJ)g&2pzus? に対して一時パスワードが生成されます。
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql
16. SSLログインをサポートするように mysql を設定する
./mysql_ssl_rsa_setup --datadir=/data/mysql/
17. PATH 変数を変更し、mysql binディレクトリを追加します。PATH変数の値を一時的に変更する
エクスポート PATH=/usr/local/mysql/bin/:$PATH
18. PATH 変数の値を永続的に変更し、Linux システムを再起動して有効にします。
echo 'PATH=/usr/local/mysql/bin:$PATH' >>/root/.bashrc
19. support-files 内の mysql.server ファイルを mysqld という名前の /etc/init.d/ ディレクトリにコピーします。
cp ../support-files/mysql.server /etc/init.d/mysqld
20. /etc/init.d/mysqld スクリプト ファイル内の datadir ディレクトリの値を変更します。
sed -i '70c datadir=/data/mysql' /etc/init.d/mysqld
21. /etc/my.cnfの設定ファイルを生成し、すべてを直接コピーします。
猫 >/etc/my.cnf <<EOF
[mysqld_safe]
[クライアント]
ソケット=/データ/mysql/mysql.sock
[mysqld]
ソケット=/データ/mysql/mysql.sock
ポート = 3306
open_files_limit = 8192
innodb_buffer_pool_size = 512M
文字セットサーバー=utf8
[mysql]
自動再ハッシュ
プロンプト=\\u@\\d \\R:\\m mysql>
終了後
22.カーネルで開いているファイルの数を変更する
1000000の減少
23. 起動時に設定が有効になるように設定します。
echo "ulimit -n 1000000" >>/etc/rc.local
chmod +x /etc/rc.d/rc.local
24. Linux システムのサービス管理リストに mysqldを追加します。
chkconfig --mysqld を追加
25.起動時にmysqld サービスが開始されるように設定します。
chkconfig mysqld オン
26. mysqld プロセスを開始し、正常に開始したら設定します。
サービスmysqldの開始
27. ランダムに生成されたパスワードを使用して、mysql にログインします。ランダムに生成したパスワードは既に存在しています (HEJ)g&2pzus?
mysql -uroot -p'HEJ)g&2pzus?'
28. mysql のパスワードを変更します。mysql でステートメントを記述するときは、必ずセミコロンを記述してください。パスワードに高度なセキュリティを必要としない場合は、覚えやすいパスワードを設定してください。毎日一生懸命勉強して進歩するように設定しました (hhxxttxsoy)
パスワードを設定='hhxxttxsoy';
29.設定が成功したかどうかを確認します。mysql のデータベースが表示されれば、設定は成功したことを意味します。
データベースを表示します。
3. スクリプト操作を使用する
上記のコマンドライン操作に従って、ワンクリックインストールの効果を実現できる スクリプトを作成することもできます。
上記のコマンドラインに従ってスクリプトを作成します。変更する必要がある手順は次のとおりです。
1.ステップ 15で、ランダムに生成されたパスワードを見つけるために、出力を指定したファイルにリダイレクトすることを忘れないでください。
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql &>passwd.txt
2.ステップ 16の後にステップを追加します。つまり、生成されたパスワードを抽出するための ssl ログインをサポートするように mysql を設定した後にこのステップを追加します。
tem_passwd=$(cat passwd.txt |grep "一時"|awk '{print $NF}')
#$NF は最後のフィールドを意味します
# abc=$(command) まずコマンドを実行し、その結果を abc に代入します
3.手順 24 と 25 を次のように変更します。
/sbin/chkconfig --mysqld を追加
/sbin/chkconfig mysqld 上
4. スクリプトは一時パスワードを自動的に変更するため、変更する必要があるすべての変更は手順 27 と 28と組み合わされます。
mysql -uroot -p$tem_passwd --connect-expired-password -e "パスワードを設定='hhxxttxsoy';"
最後にコマンドを修正・統合してスクリプトを作成して実行しますが、スクリプト内にmysqlのバージョン番号と一致するmysql圧縮パッケージが存在することが前提となります。圧縮パッケージとスクリプトが同じディレクトリにあることを確認してください。
上記は Linux システムでの mysql のインストールに関する基本的な内容ですが、間違いがある場合は修正してください。