シェル スクリプトを使用してワンクリックで MySQL 5.7.29 をインストールする方法

シェル スクリプトを使用してワンクリックで MySQL 5.7.29 をインストールする方法

この記事は51CTOブログの著者wjw555の作品を参照しています。

スクリプトの内容:

vim インストール.mysql.sh
 
#!/bin/bash
 
[ -f /etc/init.d/functions ]&& . /etc/init.d/functions
 
###ユーザーがルートかどうかを確認する
[ $UID -ne 0 ]の場合;
 echo "エラー: このスクリプトを実行するには root である必要があります。インストールには root を使用してください"
 出口1
フィ
 
クリア
エコー "= ...
echo "Redhat/CentOS Linux 上で MySQL 5.7.29 を自動コンパイルしてインストールするツール"
エコー "= ...
#pkill -9 MySQL
#日付 +%Y-%m-%d-%H-%M
#システム独自のMysqlをアンインストールする
#/bin/rpm -e $(/bin/rpm -qa | grep mysql|xargs) --nodeps
#/bin/rpm -e $(/bin/rpm -qa | grep mariadb|xargs) --nodeps
#/bin/rm -f /etc/my.cnf
 
#mysql ルートパスワードを設定する
 エコー "=================================
  mysqlrootpwd="$1"
  [ "$1" = "" ]の場合;
    mysqlrootpwd="rootmysql"
  フィ
 
#どの MySQL バージョンをインストールしますか?
エコー "=================================
 
 isinstallmysql57="5.7.29"
 echo "MySQL 5.7.29 をインストールします。y を入力してください"
 read -p "(y、nを入力してください):"
# インストール関連のコンテンツを初期化します。
 #古いMysqlプログラムを削除する
 rpm -qa|grep mysql
 rpm -e mysql
 
 
cat >>/etc/security/limits.conf<<EOF
* ソフト nproc 65535
* ハード nproc 65535
* ソフトノーファイル 65535
* ハードnofile 65535
終了
 
echo "fs.file-max=65535" >> /etc/sysctl.conf
 
echo "================================MySQL 5.7.29 をインストール===================================="
 
#古いmy.cnfをバックアップする
#rm -f /etc/my.cnf
[ -s /etc/my.cnf ]の場合;
 mv /etc/my.cnf /etc/my.cnf.`日付 +%Y%m%d%H%M%S`.bak
フィ
echo "=============================MySQL 5.7.29 をインストールしています…………============================"
 
##mysqlディレクトリ設定変数を定義する
データディレクトリ=/data/mysql/data
バイナリログディレクトリ=/data/mysql/binlog
ログディレクトリ=/data/mysql/logs
 
##yum install devel と wget mysql
yum インストール numactl
/usr/bin/wget -P /tmp http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
睡眠2
tar xf /tmp/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
ローカルマシンでmysqlを実行するには、次のコマンドを実行します。
grep mysql /etc/passwd
RETVAL=$?
[ $RETVAL -ne 0 ]の場合;
 ユーザー追加 mysql -s /sbin/nologin -M
  アクション「mysql ユーザーが正常に追加されました」/bin/true
 それ以外
  アクション " $(echo -e "\e[31;47;5m mysqlユーザーは既に存在します\e[0m")" /bin/false
フィ
 
if [ ! -d "$Datadir" ]
それから
 mkdir -p /data/mysql/data
フィ
 
 
if [ ! -d "$Binlogdir" ]
それから
 mkdir -p /data/mysql/binlog
フィ
 
if [ ! -d "$Logdir" ]
それから
 mkdir -p /data/mysql/logs
フィ
 
chown -R mysql:mysql /data/mysql
chown -R mysql:mysql /usr/local/mysql
 
#/etc/my.cnfを編集する
#SERVERID=`ifconfig eth0 | grep "inet addr" | awk '{ print $2}'| awk -F. '{ print $3$4}'`
cat >>/etc/my.cnf<<EOF
[クライアント]
ポート = 3306
 
[mysql]
自動再ハッシュ
プロンプト="\\u@\\h [\\d]>"
#pager="less -i -n -S"
#tee=/opt/mysql/クエリ.log
 
[mysqld]
####: グローバル用
ユーザー = mysql       
ベースディレクトリ =/usr/local/mysql/    
データディレクトリ = /data/mysql/data 
サーバーID =2333306      
ポート = 3306       
文字セットサーバー =utf8       
明示的なタイムスタンプのデフォルト = オフ       
log_timestamps = システム      
ソケット = /tmp/mysql.sock    
読み取り専用 = 0        
スキップ名解決 =1        
自動増分 =1        
自動増分オフセット =1        
小文字のテーブル名 = 1        
secure_file_priv =        
オープンファイル制限 = 65536       
最大接続数 = 1000       
スレッドキャッシュサイズ = 64       
テーブルオープンキャッシュ =81920       
テーブル定義キャッシュ =4096       
テーブルオープンキャッシュインスタンス = 64       
最大準備済みステートメント数 = 1048576      
 
####: binlog用
binlog_format = 行       
log_bin = /data/mysql/binlog/mysql-bin      
binlog_rows_query_log_events = オン       
log_slave_updates = オン       
有効期限 =7        
binlog_cache_size = 65536       
#binlog_checksum =なし       
同期バイナリログ = 1        
スレーブコミット順序の保持 =ON       
 
####: エラーログ用
log_error = /data/mysql/logs/error.log      
 
general_log = オフ       
general_log_file = /data/mysql/logs/general.log     
 
####: 遅いクエリログ用
slow_query_log = オン        
slow_query_log_file = /data/mysql/logs/slow.log      
#log_queries_not_using_indexes = オン       
長いクエリ時間 = 1.000000      
 
####: gtidの場合
#gtid_executed_compression_period = 1000       
gtid_mode = オン        
強制GTID一貫性 = オン        
 
####: レプリケーション用
スレーブ開始をスキップ = 1        
#master_info_repository =テーブル       
#リレーログ情報リポジトリ =テーブル       
スレーブパラレルタイプ = 論理クロック     
スレーブ並列ワーカー = 4        
#rpl_semi_sync_master_enabled = 1        
#rpl_semi_sync_slave_enabled = 1        
#rpl_semi_sync_master_timeout = 1000       
#plugin_load_add =semisync_master.so   
#plugin_load_add =semisync_slave.so    
binlog_group_commit_sync_delay = 100       
binlog_group_commit_sync_no_delay_count = 10      
 
####: innodbの場合
デフォルトのストレージエンジン = innodb     
デフォルト_tmp_storage_engine = innodb     
innodb_data_file_path = ibdata1:1024M:自動拡張 
innodb_temp_data_file_path = ibtmp1:12M:自動拡張  
innodb_buffer_pool_filename = ib_buffer_pool   
innodb_log_group_home_dir = /data/mysql/data      
innodb_log_files_in_group = 3       
innodb_log_file_size = 1024M      
innodb_file_per_table = オン      
innodb_online_alter_log_max_size = 128M      
innodb_open_files = 65535      
innodb_page_size = 16k      
innodb_thread_concurrency = 0       
innodb_read_io_threads = 4       
innodb_write_io_threads = 4       
innodb_purge_threads = 4       
innodb_page_cleaners = 4   
     # 4 (LRU ダーティ ページを更新)
innodb_print_all_deadlocks = オン      
innodb_deadlock_detect = オン      
innodb_lock_wait_timeout = 20      
innodb_spin_wait_delay = 128      
innodb_autoinc_lock_mode = 2       
innodb_io_capacity = 200      
innodb_io_capacity_max = 2000      
#--------永続的なオプティマイザ統計
innodb_stats_auto_recalc = オン      
innodb_stats_persistent = オン      
innodb_stats_persistent_sample_pages = 20      
 
 
innodb_adaptive_hash_index = オン      
innodb_change_buffering =すべて      
innodb_change_buffer_max_size = 25      
innodb_flush_neighbors = 1       
#innodb_flush_method =       
innodb_doublewrite = オン      
innodb_log_buffer_size = 128M      
innodb_flush_log_at_timeout = 1       
innodb_flush_log_at_trx_commit = 1       
innodb_buffer_pool_size =4096M      
innodb_buffer_pool_instances = 4
自動コミット =1       
#---------innodb スキャン耐性
innodb_old_blocks_pct = 37      
innodb_old_blocks_time = 1000      
#--------innodb 先読み
innodb_read_ahead_threshold = 56      
innodb_random_read_ahead = オフ      
#---------innodb バッファプールの状態
innodb_buffer_pool_dump_pct = 25      
innodb_buffer_pool_dump_at_shutdown =オン      
innodb_buffer_pool_load_at_startup =オン      
 
終了
 
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
Pass=$(grep '一時パスワード' /data/mysql/logs/error.log |awk '{print $NF}')
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld オン
/etc/init.d/mysqld を起動します
echo "エクスポート PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.sh
ソース /etc/profile.d/mysql.sh
echo "=============================MySQL 5.7.29 のインストールが完了しました==========================="
ps -eo 開始、cmd、pid|grep mysql
/usr/local/mysql/bin/mysqladmin -uroot -p"$Pass" パスワード $mysqlrootpwd
[root@localhost ~]# sh install.mysql.sh mysqlroot
[root@localhost ~]# ソース /etc/profile.d/mysql.sh

注: mysqlrootは、インストールスクリプトがMySQLサービスのデフォルトパスワードを変更した後の新しいパスワードです。

[root@localhost ~]# mysql -uroot -p'mysqlroot' -e "select now()"   
mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。
+---------------------+
| 今() |
+---------------------+
| 2020-10-13 16:18:47 |
+---------------------+

この時点で、MySQL サービスが正常に開始されました。

要約する

これで、シェル スクリプトを使用してワンクリックで MySQL 5.7.29 をインストールする方法についての記事は終了です。シェル スクリプトを使用してワンクリックで MySQL をインストールする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL マスター/スレーブ ステータスを監視するシェル スクリプト
  • MySQLの一般的なバックアップコマンドとシェルバックアップスクリプトの共有
  • MySQL データベースのデータを定期的にバックアップし、指定した期間保持するシェル スクリプト
  • シェル スクリプトは、仮想マシンの基本構成の作成を自動化します: tomcat--mysql--jdk--maven
  • MySQL のスケジュールされたバックアップ、削除、および回復機能を実装するシェル スクリプト
  • 各Mysqlテーブルの行数を正確にカウントする小さなシェルスクリプト
  • シェルスクリプトを使用して、サーバー上にMySQLデータベースアカウントを一括作成します。
  • シェルスクリプトを使用してMySQLにインデックスを追加する方法
  • このようなシェル スクリプトを使用して、多数の MySQL データベースを強制終了します (推奨)
  • シェル スクリプトを使用して複数の MySQL データベースを毎日自動的にバックアップする方法
  • MySQL Shellの紹介とインストール

<<:  Mac 環境での Nginx 構成とローカル静的リソースへのアクセスの実装

>>:  Web面接におけるJS事前解析と変数プロモーションの違い

推薦する

入力タイプの制限(複数の方法)

1. 入力・貼り付けできるのは中国語のみ<input onkeyup="value=...

MySQL の準同期レプリケーションについての簡単な説明

導入MySQL はレプリケーションを通じてストレージ システムの高可用性を実現します。現在、MySQ...

MySQL の左結合操作における on 条件と where 条件の違いの紹介

優先度両方のケースで同じ条件を設定すると、異なる結果セットが生成される可能性があるのは、優先順位のた...

VMware 15.5 に CentOS7 をインストールするためのグラフィック チュートリアル

1. VMware 15.5で新しい仮想マシンを作成する1. VMware を開き、ホームページで「...

Centos7のシステム言語を簡体字中国語に変更する方法

例示するシステムを自分でインストールする場合は、通常、システム言語をカスタマイズできます。ただし、ク...

MySQLメモリストレージエンジンに関する知識

メモリストレージエンジンに関する知識ポイントメモリ ストレージ エンジンは日常業務ではほとんど使用さ...

JavaScript はスローモーションアニメーションのカプセル化と使用法を説明します

プロセス分析の実装(1)繰り返して電話をかけるには?答え: 関数をカプセル化して一度だけ呼び出すコー...

Apache POIの基本的な使い方の詳しい説明

目次基本的な紹介入門テスト (Excel ファイルからのデータの読み取り)ステップ1: Maven座...

有名なブログの再設計例 28 件

1. Webデザイナーウォール 2. Veerleのブログ 3. チュートリアル9 4. UXブース...

ホバー画像のポップアウトポップアップ効果を実現するための純粋な CSS のサンプルコード

実施原則メイングラフィックは、背景と前景の 2 つの要素で構成されています。次のサンプルコードでは、...

オンライン MYSQL 同期エラーのトラブルシューティング方法の概要 (必読)

序文フェイルオーバーが発生した後、よくある問題は同期エラーです。データベースが小さい場合は、ダンプし...

WEBAPP開発スキルのまとめ(モバイルWebサイト開発の注意点)

1. レスポンシブな Web を開発するには、ページを画面サイズに適応させる必要があります。前の記...

MySQL のロックの仕組みと使用法の分析

この記事では、例を使用して MySQL のロック メカニズムと使用方法を説明します。ご参考までに、詳...

MySQLデータベースのタイムアウト設定を構成する方法の例

目次序文1. JDBCタイムアウト設定2. 接続プールのタイムアウト設定3. MyBatisクエリの...

HTML の META タグの使用に関するヒントの例

HTML メタタグHTML メタタグは、Web ページのコンテンツに関する情報をブラウザや検索エンジ...