この記事は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 をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Mac 環境での Nginx 構成とローカル静的リソースへのアクセスの実装
>>: Web面接におけるJS事前解析と変数プロモーションの違い
1. 入力・貼り付けできるのは中国語のみ<input onkeyup="value=...
導入MySQL はレプリケーションを通じてストレージ システムの高可用性を実現します。現在、MySQ...
優先度両方のケースで同じ条件を設定すると、異なる結果セットが生成される可能性があるのは、優先順位のた...
1. VMware 15.5で新しい仮想マシンを作成する1. VMware を開き、ホームページで「...
例示するシステムを自分でインストールする場合は、通常、システム言語をカスタマイズできます。ただし、ク...
メモリストレージエンジンに関する知識ポイントメモリ ストレージ エンジンは日常業務ではほとんど使用さ...
プロセス分析の実装(1)繰り返して電話をかけるには?答え: 関数をカプセル化して一度だけ呼び出すコー...
目次基本的な紹介入門テスト (Excel ファイルからのデータの読み取り)ステップ1: Maven座...
1. Webデザイナーウォール 2. Veerleのブログ 3. チュートリアル9 4. UXブース...
実施原則メイングラフィックは、背景と前景の 2 つの要素で構成されています。次のサンプルコードでは、...
序文フェイルオーバーが発生した後、よくある問題は同期エラーです。データベースが小さい場合は、ダンプし...
1. レスポンシブな Web を開発するには、ページを画面サイズに適応させる必要があります。前の記...
この記事では、例を使用して MySQL のロック メカニズムと使用方法を説明します。ご参考までに、詳...
目次序文1. JDBCタイムアウト設定2. 接続プールのタイムアウト設定3. MyBatisクエリの...
HTML メタタグHTML メタタグは、Web ページのコンテンツに関する情報をブラウザや検索エンジ...