centos6.4 编译安装mysql_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-develmysql

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

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/nologinmysql

修改权限

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 mysqldon

service mysqldstart

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值