自动化部署MySQL5.6步骤_MySQL
准备工作
首先需要搭建ftpserver
yum install vsftpd service vsftpd start
这样ftp服务就起来了,这里只是简单的使用,所以没有使用配置文件。这样我们只要将需要的文件置于/var/ftp/pub/文件夹下,匿名用户就可以copy文件到本机了。
安装rpm-build
build需要用到rpm-build,这里简单安装即可
yum install rpm-build
下面开始rpm打包
mget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.21.tar.gz cd /u01/mysql-5.6.21 mkdir rpm cd rpm
修改mysql.spec
Name: mysql-rpm Version:5.6.21 Release: renfengjun License: GPL URL: http://dev.mysql.com/ Group: applications/database BuildRoot:%{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: cmake Packager: dexter.ren.jl@gmail.com Autoreq: no prefix: /u01/mysql Summary: mysql-5.6.21.tar.gz %description The MySQL(TM) software delivers a very fast,multi-threaded, multi-user, and robust SQL (Structured Query Language)database server. MySQL Server is intended for mission-critical, heavy-loadproduction systems as well as for embedding into mass-deployed software. %define MYSQL_USER mysql %define MYSQL_GROUP mysql %define __os_install_post %{nil} %build cd $OLDPWD/../ CFLAGS="-O3 -g -fno-exceptions-static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing" CXX=g++ CXXFLAGS="-O3 -g -fno-exceptions -fno-rtti-static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing" export CFLAGS CXX CXXFLAGS cmake . \ -DSYSCONFDIR:PATH=%{prefix} \ -DCMAKE_INSTALL_PREFIX:PATH=%{prefix} \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DENABLE_PROFILING:BOOL=ON \ -DWITH_DEBUG:BOOL=OFF \ -DWITH_VALGRIND:BOOL=OFF \ -DENABLE_DEBUG_SYNC:BOOL=OFF \ -DWITH_EXTRA_CHARSETS:STRING=all \ -DWITH_SSL:STRING=bundled \ -DWITH_UNIT_TESTS:BOOL=OFF \ -DWITH_ZLIB:STRING=bundled \ -DWITH_PARTITION_STORAGE_ENGINE:BOOL=ON \ -DWITH_INNOBASE_STORAGE_ENGINE:BOOL=ON \ -DWITH_ARCHIVE_STORAGE_ENGINE:BOOL=ON \ -DWITH_BLACKHOLE_STORAGE_ENGINE:BOOL=ON \ -DWITH_PERFSCHEMA_STORAGE_ENGINE:BOOL=ON \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DENABLED_LOCAL_INFILE:BOOL=ON \ -DWITH_EMBEDDED_SERVER=0 \ -DINSTALL_LAYOUT:STRING=STANDALONE \ -DCOMMUNITY_BUILD:BOOL=ON \ -DMYSQL_SERVER_SUFFIX='-r5436'; make -j `cat /proc/cpuinfo | grep processor| wc-l` %install cd $OLDPWD/../ make DESTDIR=$RPM_BUILD_ROOT install %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-, %{MYSQL_USER}, %{MYSQL_GROUP}) %attr(755, %{MYSQL_USER}, %{MYSQL_GROUP})%{prefix}/* %pre mkdir -p /u01/mysql/data mkdir -p /u01/mysql/run mkdir -p /u01/mysql/log groupadd mysql useradd -g mysql mysql chown -R mysql:mysql /u01/mysql/data chown -R mysql:mysql /u01/mysql/log chown -R mysql:mysql /u01/mysql/run echo "exportPATH=$PATH:/u01/mysql/bin" >> /home/mysql/.bash_profile %post ln -s %{prefix}/lib %{prefix}/lib64 cp /u01/mysql/support-files/mysql.server/etc/init.d/mysql chkconfig mysql on %preun chkconfig --del mysql rm -rf /u01 userdel mysql rm -rf /var/spool/mail/mysql rm -rf /etc/init.d/mysql rm -rf /home/mysql %changelog
执行打包命令
rpmbuild -bb ./mysql.spec
输出:
Requires(pre): /bin/sh Requires(post): /bin/sh Requires(preun): /bin/sh Checking for unpackaged file(s):/usr/lib/rpm/check-files /var/tmp/mysql-rpm-5.6.21-renfengjun-root warning: Could not canonicalize hostname:centos511 Wrote:/usr/src/redhat/RPMS/x86_64/mysql-rpm-5.6.21-renfengjun.x86_64.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.62530 + umask 022 + cd /usr/src/redhat/BUILD + rm -rf/var/tmp/mysql-rpm-5.6.21-renfengjun-root + exit 0
生成的rpm包在这里:
/usr/src/redhat/RPMS/x86_64/mysql-rpm-5.6.21-renfengjun.x86_64.rpm
打包数据模板
打包的时候记得关闭mysql。这里写了一点测试数据:
mysql> select * from dexdb.t ; +------+------------+ | id |name | +------+------------+ | 1 |renfengjun | +------+------------+ 1 row in set (0.00 sec)
数据模板打包,记得ibdata1打包上
cd /u01/mysql/data
tar cf data.tar ibdata1 mysql/ dexdb/performance_schema/ test/
修改my.cnf
my.cnf文件内容:
[mysqld_safe] pid-file=/u01/mysql/run/mysqld.pid #malloc-lib=/u01/mysql/lib/libjemalloc.so [mysql] port=3306 prompt=\\u@\\d \\r:\\m:\\s> default-character-set=gbk no-auto-rehash [client] port=3306 socket=/u01/mysql/run/mysql.sock [mysqld] #dir basedir=/u01/mysql datadir=/u01/mysql/data tmpdir=/tmp lc_messages_dir=/u01/mysql/share log-error=/u01/mysql/log/alert.log slow_query_log_file=/u01/mysql/log/slow.log general_log_file=/u01/mysql/log/general.log socket=/u01/mysql/run/mysql.sock #innodb innodb_data_home_dir=/u01/mysql/data innodb_log_group_home_dir=/u01/mysql/data innodb_data_file_path=ibdata1:12M innodb_buffer_pool_size=10G innodb_buffer_pool_instances=4 innodb_log_files_in_group=2 innodb_log_file_size=1G innodb_log_buffer_size=200M innodb_flush_log_at_trx_commit=1 innodb_additional_mem_pool_size=20M innodb_max_dirty_pages_pct=60 innodb_io_capacity=1000 innodb_thread_concurrency=16 innodb_read_io_threads=8 innodb_write_io_threads=8 innodb_open_files=60000 innodb_file_format=Barracuda innodb_file_per_table=1 innodb_flush_method=O_DIRECT innodb_change_buffering=inserts innodb_adaptive_flushing=1 innodb_old_blocks_time=1000 innodb_stats_on_metadata=0 innodb_read_ahead=0 innodb_use_native_aio=0 innodb_lock_wait_timeout=5 innodb_rollback_on_timeout=0 innodb_purge_threads=1 innodb_strict_mode=1 transaction-isolation=READ-COMMITTED #myisam key_buffer=64M myisam_sort_buffer_size=64M concurrent_insert=2 delayed_insert_timeout=300 #replication master-info-file=/u01/mysql/log/master.info relay-log=/u01/mysql/log/relaylog relay_log_info_file=/u01/mysql/log/relay-log.info relay-log-index=/u01/mysql/log/mysqld-relay-bin.index slave_load_tmpdir=/u01/mysql/tmp slave_type_conversions="ALL_NON_LOSSY" slave_net_timeout=4 skip-slave-start sync_master_info=1000 sync_relay_log_info=1000 #binlog log-bin=/u01/mysql/log/mysql-bin #server_id=2552763370 binlog_cache_size=32K max_binlog_cache_size=2G max_binlog_size=500M binlog-format=ROW sync_binlog=1000 log-slave-updates=1 expire_logs_days=0 #server default-storage-engine=INNODB character-set-server=gbk lower_case_table_names=1 skip-external-locking open_files_limit=65536 safe-user-create local-infile=1 #sqlmod="STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE" performance_schema=0 log_slow_admin_statements=1 log_warnings=1 long_query_time=1 slow_query_log=1 general_log=0 query_cache_type=0 query_cache_limit=1M query_cache_min_res_unit=1K table_definition_cache=65536 #table_cache=65536 thread_stack=512K thread_cache_size=256 read_rnd_buffer_size=128K sort_buffer_size=256K join_buffer_size=128K read_buffer_size=128K port=3306 skip-name-resolve skip-ssl max_connections=4500 max_user_connections=4000 max_connect_errors=65536 max_allowed_packet=128M connect_timeout=8 net_read_timeout=30 net_write_timeout=60 back_log=1024
serverid在自动化安装脚本中自动生成。
将上面的data.tar 、my.cnf、生成的rpm包copy到ftp的pub目录下
/var/ftp/pub/
自动化安装脚本
auto_install_mysql.sh:
#!/bin/sh yum install -y cmake gcc g++ bisonncurses-devel zlib ftp -n<<EOF open 192.168.0.33 user anonymous dexter binary cd pub prompt mget * EOF rpm -ivh mysql-rpm-5.6.21-renfengjun.x86_64.rpm tar -xvf data.tar -C /u01/mysql/data/ chown -R mysql:mysql /u01/mysql/ unique_id=`date "+%Y%m%d%M%S"` echo 'server_id='$unique_id >> my.cnf cp my.cnf /u01/mysql/
执行远程自动安装命令
执行远程拷贝(dcli命令是我从一体机里面拿出来的脚本,py编写,其实和scp差不多,有需要的可以发邮箱)
如果批量的安装,需要先使用-k选项初始化一下ssh。
将脚本copy到远程
[root@centos511 ~]# ./dcli -l root -c192.168.0.36 -f ./auto_install_mysql.sh
执行远程命令,也可以放在后台
[root@centos511 ~]#./dcli -l root -c192.168.0.36 /root/ auto_install_mysql.sh
输出:
[[root@centos511 ~]# ./dcli -l root -c192.168.0.36 /root/get_rpm.sh root@192.168.0.36's password: 192.168.0.36: Address 192.168.0.36 maps tolocalhost, but this does not map back to the address - POSSIBLE BREAK-INATTEMPT! 192.168.0.36: Loaded plugins: fastestmirror,security 192.168.0.36: Loading mirror speeds from cachedhostfile 192.168.0.36: * base: mirrors.btte.net 192.168.0.36: * extras: mirrors.btte.net 192.168.0.36: * updates: mirrors.yun-idc.com 192.168.0.36: Setting up Install Process 192.168.0.36: Packagecmake-2.6.4-5.el5.4.x86_64 already installed and latest version 192.168.0.36: Package gcc-4.1.2-55.el5.x86_64already installed and latest version 192.168.0.36: No package g++ available. 192.168.0.36: Package bison-2.3-2.1.x86_64already installed and latest version 192.168.0.36: Packagencurses-devel-5.5-24.20060715.x86_64 already installed and latest version 192.168.0.36: Packagencurses-devel-5.5-24.20060715.i386 already installed and latest version 192.168.0.36: Package zlib-1.2.3-7.el5.x86_64already installed and latest version 192.168.0.36: Package zlib-1.2.3-7.el5.i386already installed and latest version 192.168.0.36: Nothing to do 192.168.0.36: Please login with USER and PASS. 192.168.0.36: Please login with USER and PASS. 192.168.0.36: KERBEROS_V4 rejected as anauthentication type 192.168.0.36: Interactive mode off. 192.168.0.36: Preparing... ################################################## 192.168.0.36: mysql-rpm ################################################## .......
结束。
验证一下
[root@study2 ~]# service mysql start Starting MySQL.......................[ OK ] [root@study2 ~]# su - mysql mys[mysql@study2 ~]$ mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.6.21-r5436-log Sourcedistribution Copyright (c) 2000, 2014, Oracle and/or itsaffiliates. All rights reserved. Oracle is a registered trademark of OracleCorporation and/or its affiliates. Other names may be trademarks oftheir respective owners. Type 'help;' or '\h' for help. Type '\c' toclear the current input statement. root@(none) 12:29:11>show databases ; +--------------------+ | Database | +--------------------+ | information_schema | | dexdb | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.37 sec) root@(none) 12:29:14>use dexdb ; Database changed root@dexdb 12:29:17>select * from t ; +------+------------+ | id |name | +------+------------+ | 1 |renfengjun | +------+------------+ 1 row in set (0.19 sec) root@dexdb 12:29:19>quit Bye [root@study2 ~]# service mysql stop Shutting down MySQL.[ OK ]
比较粗糙,还有需要改进的地方。慢慢完善吧。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











iPhone のデフォルトの地図は、Apple 独自の地理位置情報プロバイダーである Maps です。マップは改善されていますが、米国外ではうまく機能しません。 Googleマップと比べて何も提供するものはありません。この記事では、Google マップを iPhone のデフォルトの地図として使用するための実行可能な手順について説明します。 Google マップを iPhone のデフォルトの地図にする方法 Google マップを携帯電話のデフォルトの地図アプリとして設定するのは、思っているよりも簡単です。以下の手順に従ってください – 前提条件 – 携帯電話に Gmail がインストールされている必要があります。ステップ 1 – AppStore を開きます。ステップ 2 – 「Gmail」を検索します。ステップ 3 – Gmail アプリの横にある をクリックします

AppleIDを使用してiTunesStoreにログインすると、「このAppleIDはiTunesStoreで使用されていません」というエラーが画面に表示される場合があります。心配するようなエラー メッセージはありません。これらのソリューション セットに従って問題を修正できます。解決策 1 – 配送先住所を変更する iTunes Store にこのプロンプトが表示される主な理由は、AppleID プロファイルに正しい住所がないことです。ステップ 1 – まず、iPhone で iPhone 設定を開きます。ステップ 2 – AppleID は他のすべての設定の最上位にある必要があります。それで、開けてください。ステップ 3 – そこに到達したら、「支払いと配送」オプションを開きます。ステップ 4 – Face ID を使用してアクセスを確認します。ステップ

WeChat は、より良いユーザー エクスペリエンスを提供するために新しいバージョンを継続的にリリースしている中国のソーシャル メディア プラットフォームの 1 つです。 WeChat を最新バージョンにアップグレードすることは、家族や同僚と連絡を取り合ったり、友人と連絡を取り合ったり、最新の動向を把握したりするために非常に重要です。 1. 最新バージョンの機能と改善点を理解する WeChat をアップグレードする前に、最新バージョンの機能と改善点を理解することが非常に重要です。パフォーマンスの向上やバグ修正については、WeChat 公式 Web サイトまたはアプリ ストアのアップデート ノートを確認することで、新しいバージョンによってもたらされるさまざまな新機能について知ることができます。 2. 現在の WeChat バージョンを確認する WeChat をアップグレードする前に、携帯電話に現在インストールされている WeChat バージョンを確認する必要があります。クリックして WeChat アプリケーション「Me」を開き、メニュー「About」を選択すると、現在の WeChat バージョン番号が表示されます。 3. アプリを開きます

WeChat ビデオアカウントを閉鎖する方法を理解するには、まずチャット ソフトウェアである WeChat が非常に豊富な機能を備えていることを知る必要があります。 WeChat ビデオ アカウントには、人によって異なる機能があります。一般の人にとって、WeChat ビデオ アカウントは個人が撮影した短いビデオを共有するためのチャンネルにすぎず、興味深い WeChat ビデオを共有することができます。トラフィックを集めるために WeChat ビデオ アカウントを使用している人もいます。当然、荒らしや荒らしからのコメントは受け付けられないので、WeChatビデオアカウントを閉鎖したいと思うかもしれません。次に、このウェブサイトの編集者が WeChat ビデオ アカウントを閉鎖する方法を紹介します。興味のある友人は、ぜひ見に来てください。WeChat ビデオ アカウントを閉鎖する手順は次のとおりです。まず WeChat を開き、メイン画面に入ります。ページに移動し、「I」ボタンをクリックすると、次の画面が表示されます。

Safari でズーム レベルを制御できない場合、作業が困難になることがあります。したがって、Safari がズームアウトしているように見える場合は、それが問題である可能性があります。 Safari でのこの小さなズームの問題を解決する方法をいくつか紹介します。 1. カーソル拡大率:Safari メニューバーの「表示」>「カーソル拡大率」を選択します。これにより、カーソルが画面上でより見やすくなり、制御が容易になります。 2. マウスを移動します。これは簡単に聞こえるかもしれませんが、マウスを画面上の別の場所に移動するだけで、マウスが自動的に通常のサイズに戻ることがあります。 3. キーボード ショートカットを使用する 解決策 1 – ズーム レベルをリセットする Safari ブラウザから直接ズーム レベルを制御できます。ステップ 1 – Safari を使用している場合

Windows 11は、マイクロソフトが発売した最新のオペレーティングシステムとして、ユーザーに深く愛されています。 Windows 11 を使用する過程で、権限が必要な操作を実行するためにシステム管理者権限を取得する必要がある場合があります。次に、Windows 11でシステム管理者権限を取得する手順を詳しく紹介します。まずは「スタートメニュー」をクリックすると、左下隅にWindowsのアイコンが表示されますので、このアイコンをクリックして「スタートメニュー」を開きます。 2 番目のステップでは、「」を見つけてクリックします。

iPhone ではスクリーンショット機能が動作しませんか?スクリーンショットの撮影は非常に簡単で、音量を上げるボタンと電源ボタンを同時に押して携帯電話の画面を取得するだけです。ただし、デバイスでフレームをキャプチャする方法は他にもあります。解決策 1 – Assistive Touch の使用 Assistive Touch 機能を使用してスクリーンショットを撮ります。ステップ 1 – 電話の設定に移動します。ステップ 2 – 次に、タップしてアクセシビリティ設定を開きます。ステップ 3 – タッチ設定を開きます。ステップ 4 – 次に、Assistive Touch 設定を開きます。ステップ 5 – 携帯電話の Assistive Touch をオンにします。ステップ 6 – 「トップメニューのカスタマイズ」を開いてアクセスします。ステップ 7 – ここで必要なのは、これらの機能のいずれかを画面キャプチャにリンクすることだけです。それで最初をクリックしてください

iPhone の Shazam アプリに問題がありますか? Shazam は、曲を聞いて曲を見つけるのに役立ちます。ただし、Shazam が正常に動作しない場合、または曲が認識されない場合は、手動でトラブルシューティングを行う必要があります。 Shazam アプリの修復にはそれほど時間はかかりません。したがって、これ以上時間を無駄にすることなく、以下の手順に従って Shazam アプリの問題を解決してください。解決策 1 – 太字テキスト機能を無効にする iPhone の太字テキストが、Shazam が正しく動作しない原因である可能性があります。ステップ 1 – これは iPhone の設定からのみ実行できます。それで、開けてください。ステップ 2 – 次に、そこにある「ディスプレイと明るさ」設定を開きます。ステップ 3 – 「太字テキスト」が有効になっている場合
