站内搜索

自动化部署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.gzcd /u01/mysql-5.6.21mkdir rpmcd rpm

修改mysql.spec

Name: mysql-rpmVersion:5.6.21Release: renfengjunLicense: GPLURL: http://dev.mysql.com/Group: applications/databaseBuildRoot:%{_tmppath}/%{name}-%{version}-%{release}-rootBuildRequires: cmakePackager: dexter.ren.jl@gmail.comAutoreq: noprefix: /u01/mysqlSummary: mysql-5.6.21.tar.gz %descriptionThe MySQL(TM) software delivers a very fast,multi-threaded, multi-user,and robust SQL (Structured Query Language)database server. MySQL Serveris intended for mission-critical, heavy-loadproduction systems as wellas for embedding into mass-deployed software. %define MYSQL_USER mysql%define MYSQL_GROUP mysql%define __os_install_post %{nil} %buildcd $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` %installcd $OLDPWD/../make DESTDIR=$RPM_BUILD_ROOT install %cleanrm -rf $RPM_BUILD_ROOT %files%defattr(-, %{MYSQL_USER}, %{MYSQL_GROUP})%attr(755, %{MYSQL_USER}, %{MYSQL_GROUP})%{prefix}/* %premkdir -p /u01/mysql/datamkdir -p /u01/mysql/runmkdir -p /u01/mysql/loggroupadd mysqluseradd -g mysql mysqlchown -R mysql:mysql /u01/mysql/datachown -R mysql:mysql /u01/mysql/logchown -R mysql:mysql /u01/mysql/runecho "exportPATH=$PATH:/u01/mysql/bin" >> /home/mysql/.bash_profile %postln -s %{prefix}/lib %{prefix}/lib64cp /u01/mysql/support-files/mysql.server/etc/init.d/mysqlchkconfig mysql on  %preunchkconfig --del mysqlrm -rf /u01userdel mysqlrm -rf /var/spool/mail/mysqlrm -rf /etc/init.d/mysqlrm -rf /home/mysql %changelog

执行打包命令

rpmbuild -bb ./mysql.spec

输出:

Requires(pre): /bin/shRequires(post): /bin/shRequires(preun): /bin/shChecking for unpackaged file(s):/usr/lib/rpm/check-files /var/tmp/mysql-rpm-5.6.21-renfengjun-rootwarning: Could not canonicalize hostname:centos511Wrote:/usr/src/redhat/RPMS/x86_64/mysql-rpm-5.6.21-renfengjun.x86_64.rpmExecuting(%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=3306prompt=//u@//d //r://m://s>default-character-set=gbkno-auto-rehash [client]port=3306socket=/u01/mysql/run/mysql.sock [mysqld]#dirbasedir=/u01/mysqldatadir=/u01/mysql/datatmpdir=/tmplc_messages_dir=/u01/mysql/sharelog-error=/u01/mysql/log/alert.logslow_query_log_file=/u01/mysql/log/slow.loggeneral_log_file=/u01/mysql/log/general.logsocket=/u01/mysql/run/mysql.sock #innodbinnodb_data_home_dir=/u01/mysql/datainnodb_log_group_home_dir=/u01/mysql/datainnodb_data_file_path=ibdata1:12Minnodb_buffer_pool_size=10Ginnodb_buffer_pool_instances=4innodb_log_files_in_group=2innodb_log_file_size=1Ginnodb_log_buffer_size=200Minnodb_flush_log_at_trx_commit=1innodb_additional_mem_pool_size=20Minnodb_max_dirty_pages_pct=60innodb_io_capacity=1000innodb_thread_concurrency=16innodb_read_io_threads=8innodb_write_io_threads=8innodb_open_files=60000innodb_file_format=Barracudainnodb_file_per_table=1innodb_flush_method=O_DIRECTinnodb_change_buffering=insertsinnodb_adaptive_flushing=1innodb_old_blocks_time=1000innodb_stats_on_metadata=0innodb_read_ahead=0innodb_use_native_aio=0innodb_lock_wait_timeout=5innodb_rollback_on_timeout=0innodb_purge_threads=1innodb_strict_mode=1transaction-isolation=READ-COMMITTED #myisamkey_buffer=64Mmyisam_sort_buffer_size=64Mconcurrent_insert=2delayed_insert_timeout=300 #replicationmaster-info-file=/u01/mysql/log/master.inforelay-log=/u01/mysql/log/relaylogrelay_log_info_file=/u01/mysql/log/relay-log.inforelay-log-index=/u01/mysql/log/mysqld-relay-bin.indexslave_load_tmpdir=/u01/mysql/tmpslave_type_conversions="ALL_NON_LOSSY"slave_net_timeout=4skip-slave-startsync_master_info=1000sync_relay_log_info=1000 #binloglog-bin=/u01/mysql/log/mysql-bin#server_id=2552763370binlog_cache_size=32Kmax_binlog_cache_size=2Gmax_binlog_size=500Mbinlog-format=ROWsync_binlog=1000log-slave-updates=1expire_logs_days=0 #serverdefault-storage-engine=INNODBcharacter-set-server=gbklower_case_table_names=1skip-external-lockingopen_files_limit=65536safe-user-createlocal-infile=1#sqlmod="STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE"performance_schema=0 log_slow_admin_statements=1log_warnings=1long_query_time=1slow_query_log=1general_log=0 query_cache_type=0query_cache_limit=1Mquery_cache_min_res_unit=1K table_definition_cache=65536#table_cache=65536 thread_stack=512Kthread_cache_size=256read_rnd_buffer_size=128Ksort_buffer_size=256Kjoin_buffer_size=128Kread_buffer_size=128K port=3306skip-name-resolveskip-sslmax_connections=4500max_user_connections=4000max_connect_errors=65536max_allowed_packet=128Mconnect_timeout=8net_read_timeout=30net_write_timeout=60back_log=1024

serverid在自动化安装脚本中自动生成。

将上面的data.tar 、my.cnf、生成的rpm包copy到ftp的pub目录下

/var/ftp/pub/

自动化安装脚本

auto_install_mysql.sh:

#!/bin/shyum install -y cmake gcc g++ bisonncurses-devel zlib ftp -n<> 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.shroot@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,security192.168.0.36: Loading mirror speeds from cachedhostfile192.168.0.36: * base: mirrors.btte.net192.168.0.36: * extras: mirrors.btte.net192.168.0.36: * updates: mirrors.yun-idc.com192.168.0.36: Setting up Install Process192.168.0.36: Packagecmake-2.6.4-5.el5.4.x86_64 already installed and latest version192.168.0.36: Package gcc-4.1.2-55.el5.x86_64already installed and latest version192.168.0.36: No package g++ available.192.168.0.36: Package bison-2.3-2.1.x86_64already installed and latest version192.168.0.36: Packagencurses-devel-5.5-24.20060715.x86_64 already installed and latest version192.168.0.36: Packagencurses-devel-5.5-24.20060715.i386 already installed and latest version192.168.0.36: Package zlib-1.2.3-7.el5.x86_64already installed and latest version192.168.0.36: Package zlib-1.2.3-7.el5.i386already installed and latest version192.168.0.36: Nothing to do192.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 type192.168.0.36: Interactive mode off.192.168.0.36: Preparing...               ##################################################192.168.0.36: mysql-rpm                  ##################################################.......

结束。

验证一下

[root@study2 ~]# service mysql startStarting MySQL.......................[  OK  ]  [root@study2 ~]# su - mysqlmys[mysql@study2 ~]$ mysqlWelcome to the MySQL monitor.  Commands end with ; or /g.Your MySQL connection id is 1Server 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 itsaffiliates. Other names may be trademarks oftheir respectiveowners. 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 changedroot@dexdb 12:29:17>select * from t ;+------+------------+| id   |name       |+------+------------+|    1 |renfengjun |+------+------------+1 row in set (0.19 sec) root@dexdb 12:29:19>quitBye [root@study2 ~]# service mysql stopShutting down MySQL.[  OK  ]

比较粗糙,还有需要改进的地方。慢慢完善吧。

  • 上一篇:Linux下MySQL忘记root密码1.1_MySQL
  • 下一篇:centOs下升级mysql_MySQL