• ADADADADAD

    mysql-5.7.21 二进制安装 | Jemalloc内存优化 | 备份恢复|修改密码[ mysql数据库 ]

    mysql数据库 时间:2024-12-24 19:13:29

    作者:文/会员上传

    简介:

    简介######数据库目录/usr/local/mysql##################数据目录/data/mysql##################慢日志目录/data/slowlog##################端口号默认3306其余参数按需自

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    简介
    ######数据库目录/usr/local/mysql##################数据目录/data/mysql##################慢日志目录/data/slowlog##################端口号默认3306其余参数按需自行修改############
    安装脚本
    #!/bin/bashcd /usr/local/src/if [ ! -fmysql-5.7.21-linux-glibc2.12-x86_64.tar.gz]; thenwget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gzfiyum install -y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c++ libaio libaio-devel bzr bison libtool ncurses-develgcc gcc-c++# Check if user is rootif [ $(id -u) != "0" ]; thenecho "Error: You must be root to run this script, please use root to install"exit 1ficlearcd /usr/local/srcif [ ! -fjemalloc-5.0.1.tar.bz2]; thenyum installbzip2 -ywget https://github.com/jemalloc/jemalloc/releases/download/5.0.1/jemalloc-5.0.1.tar.bz2tar -xjvf jemalloc-5.0.1.tar.bz2cd jemalloc-5.0.1/./configure-prefix=/usr/local/jemalloc--libdir=/usr/local/libmake&& make installecho/usr/local/lib >> /etc/ld.so.confldconfigficp /usr/local/lib/libjemalloc.so/usr/libecho "========================================================================="echo "A tool to auto-compile & install MySQL 5.7.21 on Redhat/CentOS Linux "echo "========================================================================="cur_dir=$(pwd)#set mysql root passwordecho "==========================="mysqlrootpwd="123456"echo -e "Please input the root password of mysql:"read -p "(Default password: 123456):" mysqlrootpwdif [ "$mysqlrootpwd" = "" ]; thenmysqlrootpwd="123456"fiecho "==========================="echo "MySQL root password:$mysqlrootpwd"echo "==========================="#which MySQL Version do you want to install?echo "==========================="isinstallmysql57="n"echo "Install MySQL 5.7.21,Please input y"read -p "(Please input y , n):" isinstallmysql57case "$isinstallmysql57" iny|Y|Yes|YES|yes|yES|yEs|YeS|yeS)echo "You will install MySQL 5.7.21"isinstallmysql57="y";;*)echo "INPUT error,You will exit install MySQL 5.7.21"isinstallmysql57="n"exitesacget_char(){SAVEDSTTY=`stty -g`stty -echostty cbreak#dd if=/dev/tty bs=1 count=1 2> /dev/nullstty -rawstty echostty $SAVEDSTTY}echo ""echo "Press any key to start...or Press Ctrl+c to cancel"char=`get_char`# Initializethe installation related content.function InitInstall(){cat /etc/issueuname -aMemTotal=`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 programrpm -qa|grep mysqlrpm -e mysql#Disable SeLinuxif [ -s /etc/selinux/config ]; thensed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/configfisetenforce 0}#Installation of depend on and optimization options.function InstallDependsAndOpt(){cd $cur_dircat >>/etc/security/limits.conf<<EOF* soft nproc 65535* hard nproc 65535* soft nofile 65535* hard nofile 65535EOFecho "fs.file-max=65535net.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_max_tw_buckets = 4096net.ipv4.tcp_max_syn_backlog = 4096" >> /etc/sysctl.confsysctl -p}#Install MySQLfunction InstallMySQL57(){echo "============================Install MySQL 5.7.21=================================="cd $cur_dir#Backup old my.cnf#rm -f /etc/my.cnfif [ -s /etc/my.cnf ]; thenmv /etc/my.cnf /etc/my.cnf.`date +%Y%m%d%H%M%S`.bakfiecho "============================MySQL 5.7.21 installing…………========================="#mysql directory configurationcd /usr/local/srctarxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gzmv mysql-5.7.21-linux-glibc2.12-x86_64 /usr/local/mysqlgroupadd mysql -g 512useradd -u 512 -g mysql -s /sbin/nologin -d /home/mysql mysqlmkdir -p /data/mysqlmkdir -p /data/slowlogchown -R mysql:mysql /data/mysqlchown -R mysql:mysql /usr/local/mysqlchown -R mysql:mysql /data/slowlog#edit /etc/my.cnfSERVERID=`ifconfig eth0 | grep "inet" | awk '{ print $2}'| awk -F. '{ print $3$4}'`cat >>/etc/my.cnf<<EOF[client]port=3306socket=/tmp/mysql.sockdefault-character-set=utf8[mysql]no-auto-rehashdefault-character-set=utf8[mysqld]port=3306bind-address = 0.0.0.0character-set-server=utf8socket=/tmp/mysql.sockpid-file=/data/mysql/mysqld.pidbasedir=/usr/local/mysqldatadir=/data/mysqlexplicit_defaults_for_timestamp=truelower_case_table_names=1back_log=103max_connections=3000max_connect_errors=100000table_open_cache=512external-locking=FALSEmax_allowed_packet=32Msort_buffer_size=16Mjoin_buffer_size=2Mthread_cache_size=51query_cache_size=32M#query_cache_limit=4Mtransaction_isolation=REPEATABLE-READtmp_table_size=96Mmax_heap_table_size=96M###***slowqueryparameterslong_query_time=1slow_query_log = 1slow_query_log_file=/data/slowlog/slow.log###***binlogparameterslog-bin=mysql-binbinlog_cache_size=4Mmax_binlog_cache_size=4096Mmax_binlog_size=1024Mbinlog_format=MIXEDexpire_logs_days=7###***relay-logparameters#relay-log=/data/3307/relay-bin#relay-log-info-file=/data/3307/relay-log.info#master-info-repository=table#relay-log-info-repository=table#relay-log-recovery=1#***MyISAMparameterskey_buffer_size=16Mread_buffer_size=1Mread_rnd_buffer_size=16Mbulk_insert_buffer_size=1M#skip-name-resolve###***master-slavereplicationparametersserver-id=$SERVERID#slave-skip-errors=all#***Innodbstorageengineparametersinnodb_buffer_pool_size=2G#操作系统内存的70%-80%最佳。innodb_data_file_path=ibdata1:10M:autoextend#innodb_file_io_threads=8innodb_thread_concurrency=16innodb_flush_log_at_trx_commit=1innodb_log_buffer_size=16Minnodb_log_file_size=512Minnodb_log_files_in_group=2innodb_max_dirty_pages_pct=75innodb_buffer_pool_dump_pct=50innodb_lock_wait_timeout=50innodb_file_per_table=OFF[mysqldump]quickmax_allowed_packet=32M[myisamchk]key_buffer=16Msort_buffer_size=16Mread_buffer=8Mwrite_buffer=8M[mysqld_safe]malloc-lib=/usr/lib/libjemalloc.soopen-files-limit=8192log-error=/data/mysql/error.logpid-file=/data/mysql/mysqld.pidEOF/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql--initialize-insecurecp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldchmod 700 /etc/init.d/mysqldchkconfig --add mysqldchkconfig --level 2345 mysqld oncat >> /etc/ld.so.conf.d/mysql-x86_64.conf<<EOF/usr/local/mysql/libEOFldconfigif [ -d "/proc/vz" ];thenulimit -s unlimitedfi/etc/init.d/mysqld startcat >> /etc/profile <<EOFexport PATH=$PATH:/usr/local/mysql/binexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysql/libEOF/usr/local/mysql/bin/mysqladmin -u root password $mysqlrootpwdcat > /tmp/mysql_sec_script<<EOFuse mysql;#delete from mysql.user where user!='root' or host!='localhost';#grant all privileges on *.* to 'sys_admin'@'%' identified by 'MANAGER';flush privileges;EOF/usr/local/mysql/bin/mysql -u root -p$mysqlrootpwd -h localhost < /tmp/mysql_sec_scriptrm -f /tmp/mysql_sec_script#/etc/init.d/mysqld restartecho "============================MySQL 5.7.21 install completed========================="}function CheckInstall(){echo "===================================== Check install ==================================="clearismysql=""echo "Checking..."if [ -s /usr/local/mysql/bin/mysql ] && [ -s /usr/local/mysql/bin/mysqld_safe ] && [ -s /etc/my.cnf ]; thenecho "MySQL: OK"ismysql="ok"elseecho "Error: /usr/local/mysql not found!!!MySQL install failed."fiif [ "$ismysql" = "ok" ]; thenecho "Install MySQL 5.7.21 completed! enjoy it."echo "========================================================================="netstat -lntupelseecho "Sorry,Failed to install MySQL!"echo "You can tail /root/mysql-install.log from your server."fi}#The installation logInitInstall 2>&1 | tee /root/mysql-install.logInstallDependsAndOpt 2>&1 | tee -a /root/mysql-install.logInstallMySQL57 > /dev/nullCheckInstall 2>&1 | tee -a /root/mysql-install.log
    备份
    mysqldump-uroot -p123456 -Bultrax--single-transaction--master-data=2> ultrax.sql-A全备份-B备份库(表结构和数据)--single-transaction预防锁 数据一致性 确保本次会话(dump)时,不会看到其他会话已经提交了的数据。--master-data=2 注释记录复制信息 =1记录changemaster to 语句
    查看SQL
    egrep -v "#|\*|--|^$"ultrax.sql
    恢复
    mysql-uroot -p123456< /root/ultrax.sql
    修改密码
    [mysqld]skip-grant-tables./mysqladmin -uroot -p passwordupdate user set password=password('root') where user='root';update user set authentication_string=PASSWORD('123456')where user='root';
    热门标签: mysql5.7.21