ITPub博客

首页 > 数据库 > MySQL > CentOS 6.4下编译安装MySQL 5.6.14

CentOS 6.4下编译安装MySQL 5.6.14

MySQL 作者:zyp4IT 时间:2015-06-08 17:32:52 0 删除 编辑

CentOS 6.4下编译安装MySQL 5.6.14 (转载)

yum安装mysql

客户端需安装:mysql包

服务端需安装:mysql-devel、mysql-server包

 

 

概述:

CentOS 6.4下通过yum安装的MySQL是5.1版的,比较老,所以就想通过源代码安装高版本的5.6.14。

 

1. 查看是否安装旧版本

使用下面的命令检查是否安装有MySQL Server

#rpm -qa | grep mysql

 

 

 

2. 卸载MySQL Server旧版本

#rpm -e mysql            //普通删除模式

#rpm -e --nodeps mysql    // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

 

 

3. 安装库文件

安装编译代码需要的包

#yum -y install make gcc-c++ bison ncurses-devel mysql

 

4. 下载编译安装cmake

cmake-2.8.4.tar.gz,cmake安装包.在可下最新版本

#tar  -zxvf cmake-2.8.8.tar.gz

#cd cmake-2.8.8

#./bootstrap                       

#make

#make install

 

 

5. 下载编译安装Mysql 5.6版本

下载MySQL 5.6.14

wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz

tar xvf mysql-5.6.14.tar.gz

cd mysql-5.6.14

cmake  .   -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DSYSCONFDIR=/etc \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \

-DMYSQL_TCP_PORT=3306 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci

 

 

make && make install

 

6. 配置MySQL

设置权限

使用下面的命令查看是否有mysql用户及用户组

cat /etc/passwd     //查看用户列表

cat /etc/group      // 查看用户组列表

如果没有就创建

groupadd mysql

useradd -g mysql  -s /sbin/nologin mysql

 

修改权限

chown -R mysql.mysql /usr/local/mysql

chmod 755 /var/lib/mysql             #socket文件存放位置               

 

 

7. 初始化mysql数据库

进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表

# cd /usr/local/mysql

scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!注意:在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。

 

 

8. 修改my.cnf配置文件

#vi /etc/my.cnf

[mysqld]

# These are commonly set, remove the # and set as required.

basedir=/usr/local/mysql                            //安装时定义的安装目录

datadir=/usr/local/mysql/data                         //安装时定义的数据存放目录

port=3306                                         //安装时定义的监听端口

#server_id = .....

socket=/var/lib/mysql/mysql.sock                             //注意此目录权限问题

 

 

9. 添加mysql自启动

添加服务,拷贝服务脚本到init.d目录,并设置开机启动

cp support-files/mysql.server /etc/init.d/mysqld

chkconfig mysqld on

service mysqld start   

 

 

10. 配置环境变量

MySQL启动成功后,root默认没有密码,我们需要设置root密码。

设置之前,我们需要先设置PATH,使之直接调用mysql

修改/etc/profile文件,在文件末尾添加

#vi /etc/profile

PATH=/usr/local/mysql/bin:$PATH

export PATH

关闭文件,运行下面的命令,让配置立即生效

#source /etc/profile

 

现在,我们可以在终端内直接输入mysql进入,mysql的环境了

执行下面的命令修改root密码

#mysql -uroot  

mysql> SET PASSWORD = password('123456');

 

 

11. 配置防火墙

防火墙的3306端口默认没有开启,若要远程访问,需要开启这个端口

打开/etc/sysconfig/iptables

在“-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:

-A INPUT -m state --state NEW -m tcp -p -dport 3306 -j ACCEPT

然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:

service iptables restart

 

OK,配置完成。

 

 

 

12. 各种报错

Starting MySQL... ERROR! The server quit without updating PID file (/usr/local/mysql/data/mysql.pid).

日志文件报错:

2014-12-01 16:30:15 2963 [ERROR] Can't start server : Bind on unix socket: Permission denied

2014-12-01 16:30:15 2963 [ERROR] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?

2014-12-01 16:30:15 2963 [ERROR] Aborting

 

根据日志文件显示,首先检查运行权限,再看一下/var/mysql.sock,发现/var/mysql.sock目录下并没有该文件,是否是没有权限 写/var目录?,到这里,基本清楚了Mysql客户端和服务器端在本机的通信方式了,通过一个名为mysql.sock 文件来进行初始化通信的,因此该文件所存放的目录必须双方都有权限可以访问到,而且服务器在启动时需要写该文件,如果my.cnf中这两项配置不正确,就 会出现Permission denied等类似错误。

 

修改socket文件的权限

chmod  755 /var/lib/mysql       

 

 

若在启动mysql服务时出现如下错误,可查看错误日志找出错误原因。

  Error:Starting MySQL.The server quit without updating PID file (/data/mysql/failed184_sles10.pid).

 

Error:

130730 10:15:37 [ERROR] COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'

130730 10:15:37 [ERROR] Aborting

 若错误日志中出现如上错误,则是在编译的时候字符集与校对集没有对应。校对集时utf8_general_ci, 而字符集是latin1。

 

解决方法:在配置文件my.cnf 中的[mysqld]下面加上 -DDEFAULT_CHARSET=utf8;-DDEFAULT_COLLATION=utf8_general_ci 这两条语句。“utf8”和“utf8_general_ci ”可改成相应的字符集合校对集。 修改完后看能否启动成功,若是出现同样的问题,那没办法只能从头编译再装了。

 

Error:

130730 14:46:20 [ERROR] Plugin 'InnoDB' init function returned error.

130730 14:46:20 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

130730 14:46:20 [ERROR] Unknown/unsupported storage engine: InnoDB

130730 14:46:20 [ERROR] Aborting

出现如上错误可能是innodb在启动时出了问题。

 

解决方法:在配置文件里面写上 [mysqld] skip-innodb 或者在data目录下将文件ib_logfile0、ib_logfile1删除即可

 

CMake Error: The source directory "/data/cheriegong" does not appear to contain CMakeLists.txt.

若编译时出现以上错误,需要把预编译里面的MYSQL_USER去掉,即可预编译成功!

 

 

5.6的my.cnf配置文件

二进制日志与data分开放置,sock文件放在/var/lib/mysql下。

[mysqld]

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/var/lib/mysql/mysql.sock

 

log-bin=/binlog/mysql-bin

binlog_format=mixed

user=mysql

 

innodb_file_per_table=1

 

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

 

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30164674/viewspace-1691892/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-03-16

  • 博文量
    38
  • 访问量
    122462