二进制安装时基于已安装好的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 命令后,才会继续运行,但是运行之后也是有问题的。
然后,搜索解决的办法,从这篇文章中受到启发: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 unix2dosLoaded plugins: fastestmirror, refresh-packagekit, securityNo such command: dos2unix. Please use /usr/bin/yum --help[root@wc1 Desktop]# yum -y install dos2unix unix2dosLoaded plugins: fastestmirror, refresh-packagekit, securitySetting up Install ProcessLoading mirror speeds from cached hostfile * base: centos.ustc.edu.cn * extras: mirrors.163 * updates: mirrors.163Resolving 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 ResolutionDependencies 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 kTransaction Summary================================================================================Install 2 Package(s)Total download size: 30 kInstalled size: 35 kDownloading 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: NOKEYRetrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6importing GPG key 0xC105B9DE: Userid : CentOS-6 Key (CentOS 6 Official Signing Key)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-6Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning 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脚本。
2、mysql.sh:在mysql账号下运行。
五、mysql_run.sh
#1.创建用户组、用户、修改目录属主groupadd mysqluseradd -g mysql mysqlchown -R mysql:mysql /usr/local/mysql#2.修改用户的bash配置文件,在用户登录后,设置语言、执行路径 环境变量echo "export LANG=zh_CN.UTF-8" >> /home/mysql/.bash_profileecho "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文件,使得mysql账号能使用sudo命令、在在终端tty也能执行sudo命令echo "">> /etc/rc.local echo "#autostart mysql">> vi /etc/rc.localecho "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.confecho "mysql hard nproc 16384" >>/etc/security/limits.confecho "mysql soft nofile 1024" >>/etc/security/limits.confecho "mysql hard nofile 65536" >>/etc/security/limits.conf#6.把mysql.sh文件拷贝到mysql账户的home目录下,设置执行权限cp mysql.sh /home/mysql/mysql.shchmod 777 /home/mysql/mysql.shsu - 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 <sedir="/usr/local/mysql" binlog_cache_size="32M" binlog_format="mixed" buffer="" datadir="/data/mysqldata/3306/data" expire-logs_days="14" explicit_defaults_for_timestamp="" innodb="" innodb_buffer_pool_size="300M" innodb_data_file_path="ibdata1:10M:autoextend" innodb_log_file_size="256M" innodb_log_files_in_group="3" join_buffer_size="2M" log="" log-bin="/data/mysqldata/3306/binlog/mysql-bin" log_error="../mysql-error.log" log_output="FILE" max_allowed_packet="256M" max_binlog_cache_size="512M" max_binlog_size="512M" max_heap_table_size="16M" mysql="" net_buffer_length="8K" no-auto_rehash="" open_files_limit="10240" pid-file="/data/mysqldata/3306/mysql.pid" port="3306" prompt="(\u@\h)" read_buffer_size="1M" read_rnd_buffer_size="8M" server="" slow_query_log="1" slow_query_log_file="../slow_query.log" socket="/data/mysqldata/3306/mysql.sock" sort_buffer_size="1M" sql_mode="NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES" the="" tmpdir="/data/mysqldata/3306/tmp" user="mysql">\_default-character-set = gbkEOF#9.创建mysql服务管理脚本,共4个文件touch /data/mysqldata/scripts/mysql_env.inicat >>/data/mysqldata/scripts/mysql_env.ini < cripts="" set="" then="" touch="">>/data/mysqldata/scripts/mysql_db_startup.sh < cripts="" service:="" sh="" source="" startup="" touch="" usr="">>/data/mysqldata/scripts/mysql_db_shutdown.sh < cripts="" service:="" sh="" shutdown="" source="" touch="" usr="">>/data/mysqldata/scripts/mysqlplus.sh < cripts="" service:="" sh="" source="" usr="" x="">> /home/mysql/.bash_profilesource ~/.bash_profile