[MySQL] MySQL的自动化安装部署_MySQL
bitsCN.com
有过MySQL运维的人应该都清楚,线上的MySQL一般都采用源码编译,因为这样才可以根据企业的各自需要选择要编译的功能,虽然MySQL的源码编译挺简单的,但是试想一下,如果你有几百台服务器同时要安装MySQL,难道你还一台台去手动编译、编写配置文件吗?这显然太低效了,本文讨论MySQL的自动化安装部署。
1、制作符合自己需求的RPM包
我们要根据MySQL的源码编译符合企业需求的RPM包,源码获取命令如下:wget http://downloads.mysql.com/archives/get/file/mysql-5.6.16.tar.gztar -zxvf mysql-5.6.16.tar.gzcd mysql-5.6.16mkdir rpmcd rpm
Name: mysqlVersion:5.6.16Release: guahaoLicense: GPLURL: http://downloads.mysql.com/archives/get/file/mysql-5.6.16.tar.gzGroup: applications/databaseBuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: cmakePackager: zhuxj@guahao.comAutoreq: noprefix: /opt/mysqlSummary: MySQL 5.6.16%description The 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-load production 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 CXXFLAGScmake . / -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}/*%pre%postln -s %{prefix}/lib %{prefix}/lib64%preun%changelog
rpmbuild -bb ./mysql.spec
2、编写my.cnf模板
my.cnf模板如下:[mysqld_safe]pid-file=/opt/mysql/run/mysqld.pid[mysql]prompt=//u@//d //r://m://s>default-character-set=gbkno-auto-rehash[client]socket=/opt/mysql/run/mysql.sock[mysqld]#dirbasedir=/opt/mysqldatadir=/data/mysql/datatmpdir=/data/mysql/tmplog-error=/data/mysql/log/alert.logslow_query_log_file=/data/mysql/log/slow.loggeneral_log_file=/data/mysql/log/general.logsocket=/opt/mysql/run/mysql.sock#innodbinnodb_data_home_dir=/data/mysql/datainnodb_log_group_home_dir=/data/mysql/datainnodb_data_file_path=ibdata1:2G;ibdata2:16M:autoextendinnodb_buffer_pool_size=10Ginnodb_buffer_pool_instances=4innodb_log_files_in_group=4innodb_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=200innodb_thread_concurrency=32innodb_read_io_threads=8innodb_write_io_threads=8innodb_open_files=60000innodb_file_format=Barracudainnodb_file_per_table=1innodb_flush_method=O_DIRECTinnodb_change_buffering=allinnodb_adaptive_flushing=1innodb_old_blocks_time=1000innodb_stats_on_metadata=0innodb_read_ahead=0innodb_use_native_aio=0innodb_lock_wait_timeout=50innodb_rollback_on_timeout=0innodb_purge_threads=1innodb_strict_mode=1transaction-isolation=READ-COMMITTED#myisamkey_buffer_size=100Mmyisam_sort_buffer_size=64Mconcurrent_insert=2delayed_insert_timeout=300#replicationmaster-info-file=/data/mysql/log/master.inforelay-log=/data/mysql/log/mysql-relayrelay_log_info_file=/data/mysql/log/mysql-relay.inforelay-log-index=/data/mysql/log/mysql-relay.indexslave_load_tmpdir=/data/mysql/tmpslave_type_conversions="ALL_NON_LOSSY"slave_net_timeout=4skip-slave-startsync_master_info=1000sync_relay_log_info=1000#binloglog-bin=/data/mysql/log/mysql-binserver_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=1performance_schema=0log_slow_admin_statements=1log_warnings=1long_query_time=1slow_query_log=1general_log=0query_cache_type=0query_cache_limit=1Mquery_cache_min_res_unit=1Ktable_definition_cache=65536thread_stack=512Kthread_cache_size=256read_rnd_buffer_size=128Ksort_buffer_size=256Kjoin_buffer_size=128Kread_buffer_size=128Kport=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#server id
3、准备MySQL数据目录模板
你得事先准备一台MySQL,可以根据自己的需求,把通用性的东西放在上面(如账户等),下面是一个最简单的已安装好的MySQL的数据目录结构:[root@lx25 mysql]# ls -ltotal 12drwxr-xr-x 5 mysql mysql 4096 Jul 2 09:26 datadrwxr-xr-x 2 mysql mysql 4096 Jul 1 18:21 logdrwxr-xr-x 2 mysql mysql 4096 Jul 2 09:26 tmp[root@lx25 mysql]# cd data[root@lx25 data]# ls -ltotal 6314044drwx------ 2 mysql mysql 4096 Jul 1 17:17 mysqldrwx------ 2 mysql mysql 4096 Jul 1 17:17 performance_schemadrwx------ 2 mysql mysql 4096 Jul 1 17:17 test
4、编写自动化安装部署脚本
在运行这个脚本之前,我们必须得把前面几部制作的rpm包、my.cnf模板和数据目录模板放到一个固定的地方,本例中是放在企业内部的ftp上。MySQL自动化安装部署脚本(命名为:mysql_install.sh)如下:#!/bin/sh#Step 1: Prepareyum install cmake gcc g++ bison ncurses-devel zlib groupadd mysqluseradd -g mysql mysql#Step 2: Get Sourceftp -n> my.cnfrpm -ivh mysql-5.6.16-guahao.x86_64.rpmcp my.cnf /opt/mysqlchown -R mysql:mysql /opt/mysqltar xvf data.tar -C /datachown -R mysql:mysql /data/mysql#step 4: Start MySQLcp /opt/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqldchmod 755 /etc/init.d/mysqldchkconfig mysqld on/etc/init.d/mysqld start
bitsCN.com

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MySQL在Web應用中的主要作用是存儲和管理數據。 1.MySQL高效處理用戶信息、產品目錄和交易記錄等數據。 2.通過SQL查詢,開發者能從數據庫提取信息生成動態內容。 3.MySQL基於客戶端-服務器模型工作,確保查詢速度可接受。

InnoDB使用redologs和undologs確保數據一致性和可靠性。 1.redologs記錄數據頁修改,確保崩潰恢復和事務持久性。 2.undologs記錄數據原始值,支持事務回滾和MVCC。

MySQL是一種開源的關係型數據庫管理系統,主要用於快速、可靠地存儲和檢索數據。其工作原理包括客戶端請求、查詢解析、執行查詢和返回結果。使用示例包括創建表、插入和查詢數據,以及高級功能如JOIN操作。常見錯誤涉及SQL語法、數據類型和權限問題,優化建議包括使用索引、優化查詢和分錶分區。

MySQL在數據庫和編程中的地位非常重要,它是一個開源的關係型數據庫管理系統,廣泛應用於各種應用場景。 1)MySQL提供高效的數據存儲、組織和檢索功能,支持Web、移動和企業級系統。 2)它使用客戶端-服務器架構,支持多種存儲引擎和索引優化。 3)基本用法包括創建表和插入數據,高級用法涉及多表JOIN和復雜查詢。 4)常見問題如SQL語法錯誤和性能問題可以通過EXPLAIN命令和慢查詢日誌調試。 5)性能優化方法包括合理使用索引、優化查詢和使用緩存,最佳實踐包括使用事務和PreparedStatemen

選擇MySQL的原因是其性能、可靠性、易用性和社區支持。 1.MySQL提供高效的數據存儲和檢索功能,支持多種數據類型和高級查詢操作。 2.採用客戶端-服務器架構和多種存儲引擎,支持事務和查詢優化。 3.易於使用,支持多種操作系統和編程語言。 4.擁有強大的社區支持,提供豐富的資源和解決方案。

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。MySQL以其高性能、可扩展性和跨平台支持著称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

MySQL索引基数对查询性能有显著影响:1.高基数索引能更有效地缩小数据范围,提高查询效率;2.低基数索引可能导致全表扫描,降低查询性能;3.在联合索引中,应将高基数列放在前面以优化查询。

MySQL適合小型和大型企業。 1)小型企業可使用MySQL進行基本數據管理,如存儲客戶信息。 2)大型企業可利用MySQL處理海量數據和復雜業務邏輯,優化查詢性能和事務處理。
