Mysql5.6自动化部署
2017-11-10 17:59
477 查看
主机环境:Centos6.5
前提:
1. 配置yum源
2. 移除系统自带的mysql
3. 删除原先的mysql用户
4. 使用mysql二进制安装包:https://dev.mysql.com/downloads/file/?id=473278
前提:
1. 配置yum源
2. 移除系统自带的mysql
3. 删除原先的mysql用户
4. 使用mysql二进制安装包:https://dev.mysql.com/downloads/file/?id=473278
[root@mysql ~]# ls -lrt -rw-r--r-- 1 root root 328739574 Nov 11 00:40 mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz -rw-r--r-- 1 root root 7302 Nov 11 00:41 mysql_auto_install.sh -rw-r--r-- 1 root root 866364 Nov 11 00:46 mysql-install.log
mysql_install.sh:注意替换软件包版本
[root@mysql ~]# cat mysql_auto_install.sh ###### 二进制自动安装数据库脚本root密码mysqld将脚本和安装包放在/root目录即可############### ######数据库目录/usr/local/mysql############ ######数据目录/data/mysql############ ######日志目录/log/mysql############ ######端口号默认3306其余参数按需自行修改############ ################## #author:rrhelei@126.com# ################## #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/opt/sbin:~/bin export PATH # Check if user is root if [ $(id -u) != "0" ]; then echo "Error: You must be root to run this script, please use root to install" exit 1 fi clear echo "=========================================================================" echo "A tool to auto-compile & install MySQL 5.6.38 on Redhat/CentOS Linux " echo "=========================================================================" cur_dir=$(pwd) #set mysql root password echo "===========================" mysqlrootpwd="mysqld" echo -e "Please input the root password of mysql:" read -p "(Default password: mysqld):" mysqlrootpwd if [ "$mysqlrootpwd" = "" ]; then mysqlrootpwd="mysqld" fi echo "===========================" echo "MySQL root password:$mysqlrootpwd" echo "===========================" #which MySQL Version do you want to install? echo "===========================" isinstallmysql56="n" echo "Install MySQL 5.6.38,Please input y" read -p "(Please input y , n):" isinstallmysql56 case "$isinstallmysql56" in y|Y|Yes|YES|yes|yES|yEs|YeS|yeS) echo "You will install MySQL 5.6.38" isinstallmysql56="y" ;; *) echo "INPUT error,You will exit install MySQL 5.6.38" isinstallmysql56="n" exit esac get_char() { SAVEDSTTY=`stty -g` stty -echo stty cbreak #dd if=/dev/tty bs=1 count=1 2> /dev/null stty -raw stty echo stty $SAVEDSTTY } echo "" echo "Press any key to start...or Press Ctrl+c to cancel" char=`get_char` # Initialize the installation related content. function InitInstall() { cat /etc/issue uname -a MemTotal=`free -m | grep Mem | awk '{print $2}'` echo -e "\n Memory is: ${MemTotal} MB " #Set timezone #rm -rf /etc/localtime #ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #Delete Old Mysql program rpm -qa|grep mysql rpm -e mysql #yum -y remove mysql-server mysql mysql-libs #yum -y remove php-mysql #yum -y install yum-fastestmirror #yum -y update #Disable SeLinux if [ -s /etc/selinux/config ]; then sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config fi setenforce 0 } #Installation of depend on and optimization options. function InstallDependsAndOpt() { cd $cur_dir cat >>/etc/security/limits.conf<<EOF * soft nproc 65535 * hard nproc 65535 * soft nofile 65535 * hard nofile 65535 EOF echo "fs.file-max=65535" >> /etc/sysctl.conf } #Install MySQL function InstallMySQL56() { echo "============================Install MySQL 5.6.22==================================" cd $cur_dir #Backup old my.cnf #rm -f /etc/my.cnf if [ -s /etc/my.cnf ]; then mv /etc/my.cn 4000 f /etc/my.cnf.`date +%Y%m%d%H%M%S`.bak fi #mysql directory configuration groupadd mysql -g 512 useradd -u 512 -g mysql -s /sbin/nologin -d /home/mysql mysql tar xvf /root/mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz mv /root/mysql-5.6.38-linux-glibc2.12-x86_64 /usr/local/mysql mkdir -p /data/mysql mkdir -p /log/mysql chown -R mysql:mysql /data/mysql chown -R mysql:mysql /usr/local/mysql chown -R mysql:mysql /log #edit /etc/my.cnf SERVERID=`ifconfig eth0 | grep "inet addr" | awk '{ print $2}'| awk -F. '{ print $3$4}'` cat >>/etc/my.cnf<<EOF [client] port= 3306 socket= /tmp/mysql.sock default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] port= 3306 socket= /tmp/mysql.sock basedir= /usr/local/mysql datadir= /data/mysql open_files_limit = 3072 back_log = 103 max_connections = 800 max_connect_errors = 100000 table_open_cache = 512 external-locking = FALSE max_allowed_packet = 32M sort_buffer_size = 2M join_buffer_size = 2M thread_cache_size = 51 query_cache_size = 32M tmp_table_size = 96M max_heap_table_size = 96M slow_query_log = 1 slow_query_log_file = /log/mysql/slow.log log-error = /log/mysql/error.log long_query_time = 1 server-id = $SERVERID log-bin = mysql-bin sync_binlog = 1 binlog_cache_size = 4M max_binlog_cache_size = 4096M max_binlog_size = 1024M expire_logs_days = 60 key_buffer_size = 32M read_buffer_size = 1M read_rnd_buffer_size = 16M bulk_insert_buffer_size = 64M character-set-server=utf8 default-storage-engine = InnoDB binlog_format = row innodb_buffer_pool_dump_at_shutdown = 1 innodb_buffer_pool_load_at_startup = 1 binlog_rows_query_log_events = 1 explicit_defaults_for_timestamp = 1 #log_slave_updates=1 #gtid_mode=on #enforce_gtid_consistency=1 #innodb_write_io_threads = 8 #innodb_read_io_threads = 8 #innodb_thread_concurrency = 0 transaction_isolation = REPEATABLE-READ innodb_additional_mem_pool_size = 16M innodb_buffer_pool_size = 512M #innodb_data_home_dir = innodb_data_file_path = ibdata1:1024M:autoextend innodb_flush_log_at_trx_commit = 1 innodb_log_buffer_size = 16M innodb_log_file_size = 512M innodb_log_files_in_group = 2 innodb_max_dirty_pages_pct = 50 innodb_file_per_table = 1 innodb_locks_unsafe_for_binlog = 0 wait_timeout = 14400 interactive_timeout = 14400 skip-name-resolve [mysqldump] quick max_allowed_packet = 32M EOF /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql --defaults-file=/etc/my.cnf --user=mysql cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chmod 700 /etc/init.d/mysqld chkconfig --add mysqld chkconfig --level 2345 mysqld on cat >> /etc/ld.so.conf.d/mysql-x86_64.conf<<EOF /usr/local/mysql/lib EOF ldconfig if [ -d "/proc/vz" ];then ulimit -s unlimited fi /etc/init.d/mysqld start cat >> /etc/profile <<EOF export PATH=$PATH:/usr/local/mysql/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysql/lib EOF source /etc/profile /usr/local/mysql/bin/mysqladmin -u root password $mysqlrootpwd cat > /tmp/mysql_sec_script<<EOF use mysql; delete from mysql.user where user!='root' or host!='localhost'; grant all privileges on *.* to 'sys_admin'@'%' identified by 'mysqld'; flush privileges; EOF /usr/local/mysql/bin/mysql -u root -p$mysqlrootpwd -h localhost < /tmp/mysql_sec_script #rm -f /tmp/mysql_sec_script /etc/init.d/mysqld restart echo "============================MySQL 5.6.38 install completed=========================" } function CheckInstall() { echo "===================================== Check install ===================================" clear ismysql="" echo "Checking..." if [ -s /usr/local/mysql/bin/mysql ] && [ -s /usr/local/mysql/bin/mysqld_safe ] && [ -s /etc/my.cnf ]; then echo "MySQL: OK" ismysql="ok" else echo "Error: /usr/local/mysql not found!!!MySQL install failed." fi if [ "$ismysql" = "ok" ]; then echo "Install MySQL 5.6.38 completed! enjoy it." echo "=========================================================================" netstat -ntl else echo "Sorry,Failed to install MySQL!" echo "You can tail /root/mysql-install.log from your server." fi } #The installation log InitInstall 2>&1 | tee /root/mysql-install.log CheckAndDownloadFiles 2>&1 | tee -a /root/mysql-install.log InstallDependsAndOpt 2>&1 | tee -a /root/mysql-install.log InstallMySQL56 2>&1 | tee -a /root/mysql-install.log CheckInstall 2>&1 | tee -a /root/mysql-install.log
安装过程:
[root@mysql ~]# sh mysql_auto_install.sh ========================================================================= A tool to auto-compile & install MySQL 5.6.38 on Redhat/CentOS Linux ========================================================================= =========================== Please input the root password of mysql: (Default password: mysqld): =========================== MySQL root password:mysqld =========================== =========================== Install MySQL 5.6.38,Please input y (Please input y , n):y You will install MySQL 5.6.38 Press any key to start...or Press Ctrl+c to cancel CentOS release 6.5 (Final) Kernel \r on an \m Linux mysql 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux Memory is: 1862 MB error: package mysql is not installed setenforce: SELinux is disabled mysql_auto_install.sh: line 243: CheckAndDownloadFiles: command not found ============================Install MySQL 5.6.22================================== mysql-5.6.38-linux-glibc2.12-x86_64/share/polish/errmsg.sys mysql-5.6.38-linux-glibc2.12-x86_64/share/russian/errmsg.sys mysql-5.6.38-linux-glibc2.12-x86_64/share/german/errmsg.sys mysql-5.6.38-linux-glibc2.12-x86_64/share/spanish/errmsg.sys mysql-5.6.38-linux-glibc2.12-x86_64/share/italian/errmsg.sys mysql-5.6.38-linux-glibc2.12-x86_64/share/mysql_test_data_timezone.sql mysql-5.6.38-linux-glibc2.12-x86_64/share/norwegian/errmsg.sys mysql-5.6.38-linux-glibc2.12-x86_64/share/slovak/errmsg.sys mysql-5.6.38-linux-glibc2.12-x86_64/share/serbian/errmsg.sys mysql-5.6.38-linux-glibc2.12-x86_64/share/dutch/errmsg.sys mysql-5.6.38-linux-glibc2.12-x86_64/share/mysql_security_commands.sql mysql-5.6.38-linux-glibc2.12-x86_64/share/dictionary.txt mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/latin1.xml mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/Index.xml mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/latin2.xml mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/hp8.xml mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/latin7.xml mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/macroman.xml mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/ascii.xml mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/keybcs2.xml mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/greek.xml mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/hebrew.xml mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/cp1257.xml mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/swe7.xml mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/cp866.xml Installing MySQL system tables...2017-11-11 00:44:28 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap. 2017-11-11 00:44:28 0 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.6.38-log) starting as process 3016 ... OK Filling help tables...2017-11-11 00:45:25 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap. 2017-11-11 00:45:25 0 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.6.38-log) starting as process 3040 ... OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /usr/local/mysql/bin/mysqladmin -u root password 'new-password' /usr/local/mysql/bin/mysqladmin -u root -h 192.168.48.50 password 'new-password' Alternatively you can run: /usr/local/mysql/bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd . ; /usr/local/mysql/bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd mysql-test ; perl mysql-test-run.pl Please report any problems at http://bugs.mysql.com/ The latest information about MySQL is available on the web at http://www.mysql.com Support MySQL by buying support/licenses at http://shop.mysql.com New default config file was created as /usr/local/mysql/my.cnf and will be used by default by the server when you start it. You may edit this file to change server settings WARNING: Default config file /etc/my.cnf exists on the system This file will be read by default by the MySQL server If you do not want to use this, either remove it, or use the --defaults-file argument to mysqld_safe when starting the server Starting MySQL.. SUCCESS! Warning: Using a password on the command line interface can be insecure. Warning: Using a password on the command line interface can be insecure. Shutting down MySQL.. SUCCESS! Starting MySQL.. SUCCESS! ============================MySQL 5.6.38 install completed========================= ^C===================================== Check install =================================== Checking... MySQL: OK Install MySQL 5.6.38 completed! enjoy it.
相关文章推荐
- 生产库自动化MySQL5.6安装部署详细教程
- 生产库自动化MySQL5.6安装部署详细教程
- 自动化部署MySQL 5.6 步骤
- 自动化部署MySQL 5.6 步骤 制作到ftp共享,永远使用
- MySQL5.6自动化部署(二进制)
- MySQL5.6生产库自动化安装部署
- MySQL5.7多实例自动化部署脚本
- Windows+Apache+PHP(5.6或者7.0)+MySQL项目部署各种坑的解决
- Centos6上进行Mysql5.6安装和主从复制部署
- Windows+Apache+PHP(5.6或者7.0)+MySQL项目部署各种坑的解决
- Linux_安装部署MySQL5.6
- MYSQL 5.6源码编译部署实录
- 【MySQL】 MySQL的自动化安装部署
- 在Windows Azure上基于CentOS 6.3部署MySQL 5.6主从式数据库(1)
- Centos5.6 x86下部署安装DRBD+Heartbeat+MySQL
- 【若泽大数据MySQL实战】MySQL5.6 二进制部署
- MYSQL部署配置管理5.6版本
- 规模化部署mysql5.6
- 1分钟完成MySQL5.6安装部署
- Centos5.6 x86下部署安装DRBD+Heartbeat+MySQL