自动化部署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 ]
比较粗糙,还有需要改进的地方。慢慢完善吧。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Die Standardkarte auf dem iPhone ist Maps, Apples proprietärer Geolokalisierungsanbieter. Obwohl die Karte immer besser wird, funktioniert sie außerhalb der Vereinigten Staaten nicht gut. Im Vergleich zu Google Maps hat es nichts zu bieten. In diesem Artikel besprechen wir die möglichen Schritte, um Google Maps als Standardkarte auf Ihrem iPhone zu nutzen. So machen Sie Google Maps zur Standardkarte auf dem iPhone. Das Festlegen von Google Maps als Standardkarten-App auf Ihrem Telefon ist einfacher als Sie denken. Befolgen Sie die nachstehenden Schritte – Erforderliche Schritte – Sie müssen Gmail auf Ihrem Telefon installiert haben. Schritt 1 – Öffnen Sie den AppStore. Schritt 2 – Suchen Sie nach „Gmail“. Schritt 3 – Klicken Sie auf neben der Gmail-App

Wenn Sie sich mit der AppleID beim iTunesStore anmelden, wird möglicherweise die Fehlermeldung „Diese AppleID wurde nicht im iTunesStore verwendet“ auf dem Bildschirm angezeigt. Es gibt keine Fehlermeldungen, über die Sie sich Sorgen machen müssen. Sie können sie beheben, indem Sie diese Lösungssätze befolgen. Fix 1 – Lieferadresse ändern Der Hauptgrund, warum diese Aufforderung im iTunes Store erscheint, ist, dass Sie nicht die richtige Adresse in Ihrem AppleID-Profil haben. Schritt 1 – Öffnen Sie zunächst die iPhone-Einstellungen auf Ihrem iPhone. Schritt 2 – AppleID sollte über allen anderen Einstellungen stehen. Also, öffnen Sie es. Schritt 3 – Öffnen Sie dort die Option „Zahlung & Versand“. Schritt 4 – Bestätigen Sie Ihren Zugang mit Face ID. Schritt

WeChat ist eine der Social-Media-Plattformen in China, die ständig neue Versionen herausbringt, um ein besseres Benutzererlebnis zu bieten. Ein Upgrade von WeChat auf die neueste Version ist sehr wichtig, um mit Familie und Kollegen in Kontakt zu bleiben, mit Freunden in Kontakt zu bleiben und über die neuesten Entwicklungen auf dem Laufenden zu bleiben. 1. Verstehen Sie die Funktionen und Verbesserungen der neuesten Version. Es ist sehr wichtig, die Funktionen und Verbesserungen der neuesten Version zu verstehen, bevor Sie WeChat aktualisieren. Für Leistungsverbesserungen und Fehlerbehebungen können Sie sich über die verschiedenen neuen Funktionen der neuen Version informieren, indem Sie die Update-Hinweise auf der offiziellen WeChat-Website oder im App Store lesen. 2. Überprüfen Sie die aktuelle WeChat-Version. Bevor wir WeChat aktualisieren, müssen wir die derzeit auf dem Mobiltelefon installierte WeChat-Version überprüfen. Klicken Sie, um die WeChat-Anwendung „Ich“ zu öffnen, und wählen Sie dann das Menü „Über“ aus, in dem Sie die aktuelle WeChat-Versionsnummer sehen können. 3. Öffnen Sie die App

Um zu verstehen, wie man ein WeChat-Videokonto schließt, müssen Sie zunächst wissen, dass WeChat, eine Chat-Software, sehr funktionsreich ist. Für verschiedene Personen haben WeChat-Videokonten unterschiedliche Funktionen. Für normale Menschen ist das WeChat-Videokonto lediglich ein Kanal zum Teilen kurzer, von Einzelpersonen aufgenommener Videos, und sie können einige interessante WeChat-Videos teilen. Andere nutzen WeChat-Videokonten, um Traffic anzulocken. Natürlich können sie möglicherweise keine Kommentare von Trollen und Trollen akzeptieren, daher möchten sie möglicherweise das WeChat-Videokonto schließen. Als nächstes stellt Ihnen der Herausgeber dieser Website vor, wie Sie das WeChat-Videokonto schließen können. Kommen Sie und schauen Sie sich die Schritte zum Schließen des WeChat-Videokontos an Seite, und klicken Sie auf die Schaltfläche „I“, um zu einer zu gelangen

Windows 11 erfreut sich als neuestes von Microsoft eingeführtes Betriebssystem großer Beliebtheit bei den Nutzern. Bei der Verwendung von Windows 11 müssen wir manchmal Systemadministratorrechte erlangen, um einige Vorgänge ausführen zu können, für die Berechtigungen erforderlich sind. Als Nächstes stellen wir die Schritte zum Erlangen von Systemadministratorrechten in Windows 11 im Detail vor. Der erste Schritt besteht darin, auf „Startmenü“ zu klicken. Sie können das Windows-Symbol in der unteren linken Ecke sehen. Klicken Sie auf das Symbol, um das „Startmenü“ zu öffnen. Suchen Sie im zweiten Schritt nach „

Wenn Sie in Safari keine Kontrolle über die Zoomstufe haben, kann es schwierig sein, Dinge zu erledigen. Wenn Safari also verkleinert aussieht, könnte das ein Problem für Sie sein. Hier sind einige Möglichkeiten, wie Sie dieses geringfügige Zoomproblem in Safari beheben können. 1. Cursorvergrößerung: Wählen Sie in der Safari-Menüleiste „Anzeige“ > „Cursorvergrößerung“. Dadurch wird der Cursor auf dem Bildschirm besser sichtbar und lässt sich einfacher steuern. 2. Bewegen Sie die Maus: Das hört sich vielleicht einfach an, aber manchmal kann es passieren, dass durch einfaches Bewegen der Maus an eine andere Stelle auf dem Bildschirm automatisch die normale Größe wiederhergestellt wird. 3. Verwenden Sie Tastaturkürzel. Fix 1 – Zoomstufe zurücksetzen Sie können die Zoomstufe direkt über den Safari-Browser steuern. Schritt 1 – Wenn Sie sich in Safari befinden

Haben Sie Probleme mit der Shazam-App auf dem iPhone? Shazam hilft Ihnen, Lieder zu finden, indem Sie sie anhören. Wenn Shazam jedoch nicht richtig funktioniert oder den Song nicht erkennt, müssen Sie den Fehler manuell beheben. Die Reparatur der Shazam-App wird nicht lange dauern. Befolgen Sie also, ohne noch mehr Zeit zu verlieren, die folgenden Schritte, um Probleme mit der Shazam-App zu beheben. Fix 1 – Deaktivieren Sie die Funktion für fetten Text. Fetter Text auf dem iPhone kann der Grund dafür sein, dass Shazam nicht richtig funktioniert. Schritt 1 – Sie können dies nur über Ihre iPhone-Einstellungen tun. Also, öffnen Sie es. Schritt 2 – Als nächstes öffnen Sie dort die Einstellungen „Anzeige & Helligkeit“. Schritt 3 – Wenn Sie feststellen, dass „Fetttext“ aktiviert ist

Die Screenshot-Funktion funktioniert auf Ihrem iPhone nicht? Das Erstellen eines Screenshots ist sehr einfach, da Sie nur die Lauter-Taste und die Ein-/Aus-Taste gleichzeitig gedrückt halten müssen, um den Bildschirm Ihres Telefons anzuzeigen. Es gibt jedoch auch andere Möglichkeiten, Frames auf dem Gerät zu erfassen. Fix 1 – Assistive Touch verwenden Machen Sie einen Screenshot mit der Assistive Touch-Funktion. Schritt 1 – Gehen Sie zu Ihren Telefoneinstellungen. Schritt 2 – Tippen Sie als Nächstes auf, um die Barrierefreiheitseinstellungen zu öffnen. Schritt 3 – Öffnen Sie die Touch-Einstellungen. Schritt 4 – Öffnen Sie als Nächstes die Assistive Touch-Einstellungen. Schritt 5 – Aktivieren Sie Assistive Touch auf Ihrem Telefon. Schritt 6 – Öffnen Sie „Hauptmenü anpassen“, um darauf zuzugreifen. Schritt 7 – Jetzt müssen Sie nur noch eine dieser Funktionen mit der Bildschirmaufnahme verknüpfen. Klicken Sie also auf das erste
