二进制安装时基于已安装好的MysqL,
可以参考这个:【MySQL学习笔记】CentOS 6.6上源码编译方式安装MySQL 5.6
把已安装好的MysqL,也就是把/usr/local/MysqL 目录直接打包压缩,把压缩文件放到要安装MysqL的机器上,解压之后,MysqL就安装好了。
不过,安装好之后,好需要进行各种配置。
安装、配置过程如下:
一、把MysqL程序打包 压缩
[root@wc1 MysqL]# cd /usr/local/MysqL [root@wc1 MysqL]# tar -zcvf /root/Desktop/MysqL-5.6.12.bin.tar.gz
二、把压缩包复制到要安装MysqL的机器上解压,然后移动到目标目录
[root@wc1 MysqL]# cd /root/Desktop [root@wc1 Desktop]# tar -zxvf /root/Desktop/MysqL-5.6.12.bin.tar.gz [root@wc1 Desktop]# mv usr/local/MysqL /usr/local
三:在shell脚本中执行su命令、转换文件格式
由于脚本文件在运行的过程中要切换到MysqL用户,也就是命令:su - MysqL,导致接下去的命令行都不执行,只有在输入 exit 命令后,才会继续运行,但是运行之后也是有问题的。
然后,搜索解决的办法,从这篇文章中受到启发:http://blog.csdn.net/huashnag/article/details/43967237,感谢作者。
另外,由于shell脚本是在windows下编辑的,linux环境中无法运行,报错:
command not found 3:
command not found 4
command not found 5
QQ群中一个热心的网友说,这是格式问题,需要安装dos2unix,把windows下编辑的文件,转成unix格式的,类似这样:
dos2unix 文件名
然后,在网上搜索安装方法,安装dos2unix:
[root@wc1 Desktop]# yum -y dos2unix unix2dos Loaded plugins: fastestmirror,refresh-packagekit,security No such command: dos2unix. Please use /usr/bin/yum --help [root@wc1 Desktop]# yum -y install dos2unix unix2dos Loaded plugins: fastestmirror,security Setting up Install Process Loading mirror speeds from cached hostfile * base: centos.ustc.edu.cn * extras: mirrors.163.com * updates: mirrors.163.com Resolving Dependencies --> Running transaction check ---> Package dos2unix.x86_64 0:3.1-37.el6 will be installed ---> Package unix2dos.x86_64 0:2.2-35.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: dos2unix x86_64 3.1-37.el6 base 16 k unix2dos x86_64 2.2-35.el6 base 14 k Transaction Summary ================================================================================ Install 2 Package(s) Total download size: 30 k Installed size: 35 k Downloading Packages: (1/2): dos2unix-3.1-37.el6.x86_64.rpm | 16 kB 00:00 (2/2): unix2dos-2.2-35.el6.x86_64.rpm | 14 kB 00:00 -------------------------------------------------------------------------------- Total 76 kB/s | 30 kB 00:00 warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature,key ID c105b9de: NOKEY Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 Importing GPG key 0xC105B9DE: Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org> Package: centos-release-6-6.el6.centos.12.2.x86_64 (@anaconda-CentOS-201410241409.x86_64/6.6) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : unix2dos-2.2-35.el6.x86_64 1/2 Installing : dos2unix-3.1-37.el6.x86_64 2/2 Verifying : dos2unix-3.1-37.el6.x86_64 1/2 Verifying : unix2dos-2.2-35.el6.x86_64 2/2 Installed: dos2unix.x86_64 0:3.1-37.el6 unix2dos.x86_64 0:2.2-35.el6 Complete! [root@wc1 Desktop]#
四、脚本
主要有2个脚本文件。
1、MysqL_run.sh:在root账号下运行,主要是做一些预备的工作,最后会调用MysqL.sh脚本。
五、MysqL_run.sh
#1.创建用户组、用户、修改目录属主 groupadd MysqL useradd -g MysqL MysqL chown -R MysqL:MysqL /usr/local/MysqL #2.修改用户的bash配置文件,在用户登录后,设置语言、执行路径 环境变量 echo "export LANG=zh_CN.UTF-8" >> /home/MysqL/.bash_profile echo "export PATH=/usr/local/MysqL/bin:\$PATH" >> /home/MysqL/.bash_profile #3.创建MysqL要用的数据目录 mkdir -p /data/MysqLdata/{3306/{data,tmp,binlog},backup,scripts} chown -R MysqL:MysqL /data/MysqLdata #4.设置开机自启动项,里面引用到的脚本是在MysqL.sh脚本中创建的 # 通过sed编辑/etc/sudoers文件: # 1.通过增加 MysqL ALL=(ALL) ALL,使得MysqL账号能使用sudo命令,# 2.注释 Defaults requiretty,在终端tty也能执行sudo命令 # echo "">> /etc/rc.local echo "#autostart MysqL">> vi /etc/rc.local echo "sudo -i -u MysqL /data/MysqLdata/scripts/MysqL_db_startup.sh 3306 > /home/MysqL/MysqL_db_startup.log 2>&1" >> /etc/rc.local sed -i -e '/^root\s*ALL=(ALL)\s*ALL$/a\MysqL ALL=(ALL) ALL' -e's/^Defaults requiretty/#Defaults requiretty/' /etc/sudoers #5.在/etc/security/limits.conf文件中增加nproc最大能打开的进程数、nofile最大能打开的文件数 限制 echo "MysqL soft nproc 2047" >>/etc/security/limits.conf echo "MysqL hard nproc 16384" >>/etc/security/limits.conf echo "MysqL soft nofile 1024" >>/etc/security/limits.conf echo "MysqL hard nofile 65536" >>/etc/security/limits.conf #6.把MysqL.sh文件拷贝到MysqL账户的home目录下,设置执行权限 cp MysqL.sh /home/MysqL/MysqL.sh chmod 777 /home/MysqL/MysqL.sh su - MysqL -c ./MysqL.sh
六:MysqL.sh
#7.安装mysl数据库 cd /usr/local/MysqL/scripts ./MysqL_install_db --datadir=/data/MysqLdata/3306/data --basedir=/usr/local/MysqL #8.创建my.cnf文件,并输入内容 touch /data/MysqLdata/3306/my.cnf cat >>/data/MysqLdata/3306/my.cnf <<EOF [client] port = 3306 socket = /data/MysqLdata/3306/MysqL.sock #the MysqL server [MysqLd] port = 3306 user = MysqL socket =/data/MysqLdata/3306/MysqL.sock pid-file = /data/MysqLdata/3306/MysqL.pid basedir = /usr/local/MysqL datadir = /data/MysqLdata/3306/data tmpdir = /data/MysqLdata/3306/tmp open_files_limit = 10240 explicit_defaults_for_timestamp sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #buffer max_allowed_packet = 256M max_heap_table_size = 16M net_buffer_length = 8K sort_buffer_size = 1M join_buffer_size = 2M read_buffer_size = 1M read_rnd_buffer_size = 8M #log log-bin = /data/MysqLdata/3306/binlog/MysqL-bin binlog_cache_size = 32M max_binlog_cache_size = 512M max_binlog_size = 512M binlog_format = mixed log_output = FILE log_error = ../MysqL-error.log slow_query_log = 1 slow_query_log_file = ../slow_query.log expire-logs_days = 14 #innodb innodb_data_file_path = ibdata1:10M:autoextend innodb_log_file_size = 256M innodb_log_files_in_group = 3 innodb_buffer_pool_size = 300M [MysqL] no-auto_rehash prompt =(\u@\h) [\d]>\_ default-character-set = gbk EOF #9.创建MysqL服务管理脚本,共4个文件 touch /data/MysqLdata/scripts/MysqL_env.ini cat >>/data/MysqLdata/scripts/MysqL_env.ini <<EOF #set env MysqL_USER='' MysqL_PASS='' #check parameter if [ \$# -ne 1 ] then HOST_PORT=3306 else HOST_PORT=\$1 fi EOF touch /data/MysqLdata/scripts/MysqL_db_startup.sh cat >>/data/MysqLdata/scripts/MysqL_db_startup.sh <<EOF #!/bin/sh source /data/MysqLdata/scripts/MysqL_env.ini echo "Startup MysqL Service: localhost_"\${HOST_PORT} /usr/local/MysqL/bin/MysqLd_safe --defaults-file=/data/MysqLdata/\${HOST_PORT}/my.cnf & EOF touch /data/MysqLdata/scripts/MysqL_db_shutdown.sh cat >>/data/MysqLdata/scripts/MysqL_db_shutdown.sh <<EOF #!/bin/sh source /data/MysqLdata/scripts/MysqL_env.ini echo "Shutdown MysqL Service: localhost_"\${HOST_PORT} /usr/local/MysqL/bin/MysqLadmin -u\${MysqL_USER} -p\${MysqL_PASS} -S /data/MysqLdata/\${HOST_PORT}/MysqL.sock shutdown EOF touch /data/MysqLdata/scripts/MysqLplus.sh cat >>/data/MysqLdata/scripts/MysqLplus.sh <<EOF #!/bin/sh source /data/MysqLdata/scripts/MysqL_env.ini echo "Login MysqL Service: localhost_"${HOST_PORT} /usr/local/MysqL/bin/MysqL -u${MysqL_USER} -p${MysqL_PASS} -S /data/MysqLdata/${HOST_PORT}/MysqL.sock $2 EOF chmod 700 /data/MysqLdata/scripts/MysqL_env.ini chmod +x /data/MysqLdata/scripts/MysqL*.sh #10.把上面管理脚本的路劲,加到msyql用户bash配置文件中,以后就可以直接执行上面的管理脚本,而不需要切换目录了 echo "export PATH=/data/MysqLdata/scripts:\$PATH" >> /home/MysqL/.bash_profile source ~/.bash_profile