今天根据需求要在centos6.6上编译安装MysqL5.5,因为以前编译安装过感觉很简单,但是今天还是出现了点小问题,所以把过安装过程总结了一下:@H_301_1@
好像从MysqL5.5开始编译安装MysqL需要用到cmake工具进行编译安装,既然是编译安装,那么肯定要用到一些依赖的类库以及相关的编译工具,所以需要事先安装相关工具。@H_301_1@
一 、编译安装@H_301_1@
1.安装MysqL编译过程中所需要的依赖关系以及编译工具(需要先配置好yum源)@H_301_1@
# yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel bison cmake@H_301_1@
2.使用yum安装cmake编译工具@H_301_1@
#yum -y install cmake@H_301_1@
3.安装前需要检查一下是否安装MysqL,如果有就卸载掉@H_301_1@
# rpm -qa | grep MysqL@H_301_1@
# tar xvf MysqL-MysqL-5.5.35.t15.tar@H_301_1@
或者解压到指定目录(如:/usr/local)@H_301_1@
# tar xvfMysqL-MysqL-5.5.35.t15.tar -C /usr/local@H_301_1@
5.进入到MysqL的解压目录,使用cmake编译、安装@H_301_1@
# cd MysqL-MysqL-5.5.35.t15@H_301_1@
1)使用cmake编译(根据自己的具体要求选择编译参数,下边的选项参数仅供参考)@H_301_1@
#cmake \@H_301_1@
-DCMAKE_INSTALL_PREFIX=/usr/local/MysqL\
-DMysqL_DATADIR=/usr/local/MysqL/data\@H_301_1@
-DSYSCONFDIR=/etc\@H_301_1@
-DMysqL_UNIX_ADDR=/var/lib/MysqL/MysqL.sock\@H_301_1@
-DDEFAULT_CHARSET=utf8\@H_301_1@
-DDEFAULT_COLLATION=utf8_general_ci@H_301_1@
2)安装@H_301_1@
#make && make install@H_301_1@
稍等一会。。。@H_301_1@
6.需要创建MysqL用户和MysqL组,并修改MysqL安装目录的所属用户和组@H_301_1@
#useradd -g MysqL -s /sbin/nologin MysqL@H_301_1@
#chown -R MysqL:MysqL /usr/local/MysqL@H_301_1@
7.进入MysqL安装目录,执行初始化脚本,创建MysqL自带的数据库和表@H_301_1@
# cd /usr/local/MysqL@H_301_1@
# cd scripts/@H_301_1@
#./MysqL_install_db --basedir=/usr/local/MysqL --datadir=/usr/local/MysqL/data --user=MysqL@H_301_1@
# vi /etc/my.cnf@H_301_1@
1)添加服务,进入MysqL安装目录,拷贝目录/support-files下的MysqL.server文件到/etc/init.d/目录下,并重名为MysqL@H_301_1@
#cp support-files/MysqL.server /etc/init.d/MysqL@H_301_1@
2)设置开机自启@H_301_1@
11.编译安装的MysqL没有初始密码,所以要给root用户设置初始密码@H_301_1@
#/usr/local/MysqL/bin/MysqLadmin -u root password '123456'@H_301_1@
12.因为手动编译的,所有要为MysqL添加环境变量,不然在终端中输入MysqL将会提示命令找不到@H_301_1@
1)编辑/etc/profile,在文件末尾添加如下内容@H_301_1@
export PATH=$PATH:/usr/local/MysqL/bin@H_301_1@
如:@H_301_1@
#source /etc/profile@H_301_1@
13.现在MysqL的安装配置基本完成,可以去登陆、使用@H_301_1@
登录时如果出现:ERROR 2002 (HY000): Can't connect to local MysqL server through socket '/tmp/MysqL.sock' (2)错误@H_301_1@
[client]@H_301_1@
socket=/var/lib/MysqL/MysqL.sock@H_301_1@
如:@H_301_1@
14.如果希望其它远程主机访问该MysqL,可以进行如下操作@H_301_1@
MysqL>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;@H_301_1@
或者也可以去修改MysqL库中的user表,添加指定的host主机@H_301_1@
15.由于防火墙默认没有开启3306端口,所以需要手动开启此端口@H_301_1@
编辑/etc/sysconfig/iptables@H_301_1@
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT@H_301_1@
16.此时我们可以查看一下允许访问该数据库的主机、用户等信息@H_301_1@
MysqL>select host,user,password from user;@H_301_1@
可以看到我们分别设置的两个密码(本地访问MysqL的root用户密码和远程访问MysqL的root用户的密码)@H_301_1@
如果需要指定某些主机可以访问该数据库,则可以修改该表,添加指定主机的ip到该表中。@H_301_1@
17.如果要更改数据库的默认端口,则需要更改配置文件/etc/my.cnf@H_301_1@
port:端口号@H_301_1@
例如:@H_301_1@
#service MysqL restart@H_301_1@
注意:如果此处修改了默认端口号,则防火墙允许访问的端口号也要进行更改,要与此文件中的端口号保持一致@H_301_1@
18.如果在局域网内出现连接MysqL比较慢的情况,可能是与MysqL的DNS反向解析有关,可以把此功能关闭掉@H_301_1@
修改文件/etc/my.cnf,添加如下内容:@H_301_1@
skip-name-resolve@H_301_1@
如:@H_301_1@