MySQL(4)——编译安装MySQL-5.5.33
MySQL的安装方式:
(一)二进制格式安装:
RPM安装包:
OS Vendor,比如Red Hat官方提供的rpm包
MySQL官方提供的rpm包
通用二进制安装包:
(二)源码包编译方式安装:
MySQL的版本选择:
就目前为止,一般使用5.5的居多,它既具有新版本的许多特性(就像RHEL的2.6内核具有3.x内核的特性一样),又兼具5.1版本的使用风格。
但是目前官方在维护还有很多版本比如5.1、5.6、6.x
为毛需要编译安装?
由于二进制格式的包是在比较通用的平台上进行编译完成的,所以我们需要针对自己的硬件做一些优化,亦或者二进制包提供了我们一些不需要的功能,但是却少了我们需要的功能,这时我们就需要手动编译安装了。
编译器:
在5.5(包括)以后默认使用cmake作为编译器,cmake提供更加人性化的进度提示和更快的编译速度。而且最重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。
在CentOS6.4上面默认提供2.6.4版本的cmake,所以可以直接yum安装cmake。而2.8版本则需要使用epel源安装。如果需要使用cmake源码进行安装,那必须先使用make,过程如下:
# tar xf cmake-2.8.8.tar.gz # cd cmake-2.8.8 # ./bootstrap 不是./configure了 # make # make install
编译安装MySQL的方法:
既然编译器都改变了,那么cmake的编译命令必然与make有所不同:
# ./configure 等价于 # cmake . # ./configure --help 等价于 # cmake . -LH or ccmake . 查看帮助信息
清理此前的编译所生成的文件:
# make clean && rm CMakeCake.txt
编译安装前需要安装一些开发包,由于是测试环境,就都安装了:
# yum groupinstall "Server Platform Development" "Development tools" "Desktop Platform Development" "Desktop Debugging and Performance Tools" "Compatibility libraries" -y
开始安装:
# groupadd -r mysql # useradd -g mysql -r -d /mydata/data mysql 将/mydata/data的属主、属组都设为mysql # tar xf mysql-5.5.33.tar.gz # cd mysql-5.5.33 # cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci # make # make install # chown -R .mysql /usr/local/mysql/ 将/usr/local/mysql的属组设为mysql # cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf 注意:在生产环境下如果提示覆盖,请先备份保存 # vim /etc/my.cnf datadir = /mydata/data innodb_file_per_table = 1 # cd /usr/local/mysql/ # scripts/mysql_install_db --datadir=/mydata/data/ --user=mysql 初始化MySQL数据库 # cp support-files/mysql.server /etc/init.d/mysqld # chmod +x /etc/init.d/mysqld # chkconfig --add mysqld # chkconfig --list mysqld # service mysqld start # ss -antpl | grep :3306 # echo "export PATH=/usr/local/mysql/bin:$PATH" > /etc/profile.d/mysqld.sh # source /etc/profile.d/mysqld.sh
替换InnoDB引擎:
InnoDB属于Innobase公司的产品,后被oracle收购。虽然InnoDB引擎是免费的,但其热备份工具时收费的,而且巨贵,所以Percona公司便做了一个InnoDB的升级版本XtraDB,功能更加强大,而且备份工具是免费的。为此,oracle经常升级MySQL的版本号,造成percona是旧版本的假象。
我们可以下载percona的数据,然后将其中的XtraDB引擎目录拿出来并命名为innobase,然后覆盖掉/usr/src/mysql-5.5.33/storage/innobase目录,然后按照正常的方法按照MySQL即可。
安装后的工作:
1、设置root密码,删除匿名用户
mysql> use mysql mysql> select user,host,password from user; mysql> UPDATE user SET password=PASSWORD(‘new_passwd‘) WHERE user=‘root‘; 第一种方式 mysql> SET PASSWORD FOR [email protected]=PASSWORD(‘new_passwd2‘); 第二种方式 mysql> drop user ‘‘@‘localhost‘; mysql> drop user ‘‘@‘HOSTNAME‘; mysql> drop user ‘root‘@‘::1‘; 禁止root使用IPv6登录
忘记root密码后的操作:
# vim /etc/init.d/mysqld $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 & 寻找到此行,然后修改为如下格式→保存→重启→修改root密码→还原此文件→重启MySQL $bindir/mysqld_safe --datadir="$datadir" --skip-grant --skip-networking --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 & --skip-grant 跳过授权表 --skip-networking 禁止网络登录
本文出自 “Go right on” 博客,请务必保留此出处http://caduke.blog.51cto.com/3365689/1599124
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。