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