免编译的方式安装mysql-5.6.14
今天领导要求使用免编译的方式安装生产环境的mysql,所以才有了下文. 里面涉及的目录已经处理,大家根据需要自己来改吧!
1 下载mysql免编译包:
wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz
2 设置mysql目录:
tar -zxvf mysql-5.6.14-linux-glibc2.5-x86_64.tar.gzmv mysql-5.6.14-linux-glibc2.5-x86_64 /usr/local/mysqlgroupadd mysqluseradd -g mysql -M mysqlmkdir -p /work/mysql/datachown -R mysql.mysql /work/mysql/data
3 初始化MySQL数据库:
#提示:运行下面的命令初始化安装mysql之前确认系统没有/etc/my.cnf/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/work/mysql/data --user=mysql
4 添加mysqld 成为系统服务并设置自启动:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldchkconfig --add mysqldchkconfig mysqld on
5 启动mysql:
/etc/init.d/mysqld start
6 设置密码:
/usr/local/mysql/bin/mysqladmin -u root password '你的密码'
7 关于my.cnf:
mysqld-5.5以上版本的my.cnf这个文件 在执行初始化的时候,会自动安装到/usr/local/mysql/my.cnf下。 并且主要修改里面的选项配置
8 故障:
Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
解决办法:
这个问题是需要重新初始化mysql数据库mysql_install_db --basedir=/usr/local/mysql --datadir=/work/mysql/data --user=mysql
9 关于我的my.cnf:
/usr/local/mysql/my.cnf# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html[mysqld]# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.innodb_buffer_pool_size = 128M# Remove leading # to turn on a very important data integrity option: logging# changes to the binary log between backups.# log_bin# These are commonly set, remove the # and set as required.basedir = /usr/local/mysqldatadir = /work/mysql/dataport = 3306# server_id = .....socket = /tmp/mysql.sock# Remove leading # to set options mainly useful for reporting servers.# The server defaults are faster for transactions and fast SELECTs.# Adjust sizes as needed, experiment to find the optimal values.join_buffer_size = 128Msort_buffer_size = 2Mread_rnd_buffer_size = 2Msql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
ps : 根据上面的内容可以自己做成一键安装脚本。这样就不必像以前那样漫长的等待了.
------------------华丽的分割线------------------------
下面这个脚本是我在实际生产环境里面使用的,跟上面的内容多少有点出入。大家自己修改吧
#!/bin/bash#Date:2014/01/07#BY:renzhenxing qq:57674891# 免编译安装mysql-5.6.14#wget mysql-5.6.14 not install pack:yum install -y gzipcd /usr/local/src/if [ -f mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz ];then echo "mysql-5.6.14 pack is exist!"else echo "mysql pack is not exist,............now download..................." wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.14-linux-glibc2.5-x86_64.tar.gzfitar -zxf mysql-5.6.14-linux-glibc2.5-x86_64.tar.gzmv mysql-5.6.14-linux-glibc2.5-x86_64 /usr/local/mysqlgroupadd mysqluseradd -g mysql -M mysqlmkdir -p /datachown -R mysql.mysql /data[ -f /etc/my.cnf ] && mv /etc/my.cnf /etc/my.cnf_old/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data --user=mysqlcp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldchkconfig --add mysqldchkconfig mysqld onln -s /usr/local/mysql/my.cnf /etc/my.cnfcat>/etc/my.cnf<<EOF# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html[mysqld]# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.innodb_buffer_pool_size = 128M# Remove leading # to turn on a very important data integrity option: logging# changes to the binary log between backups.# log_bin# These are commonly set, remove the # and set as required.basedir = /usr/local/mysqldatadir = /dataport = 3306# server_id = .....socket = /tmp/mysql.sock# Remove leading # to set options mainly useful for reporting servers.# The server defaults are faster for transactions and fast SELECTs.# Adjust sizes as needed, experiment to find the optimal values.join_buffer_size = 128Msort_buffer_size = 2Mread_rnd_buffer_size = 2Msql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLESEOF/etc/init.d/mysqld startecho " "ps -ef | grep -v "grep mysql" |grep mysqlif [ $? -eq 0 ];then echo "mysql is install successful" exit 0else echo "mysql is install failure!" exit 1fi
本文出自 “风满楼” 博客,请务必保留此出处http://zhenxing.blog.51cto.com/728846/1342968