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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。