CentOS 6.4下编译安装MySQL 5.6.14

来源:互联网 发布:js上传身份证图片插件 编辑:程序博客网 时间:2024/06/04 08:28

CentOS 6.4下编译安装MySQL 5.6.14

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

正文:

一:卸载旧版本

查看CentOS自带mysql是否已安装。

输入:yum list installed | grep mysql

若有自带安装的mysql,如何卸载CentOS系统自带mysql数据库?

yum -y remove mysql-libs.x86_64

注:若有多个依赖文件则依次卸载。
当结果显示为Complete!即卸载完毕。

查看yum库上的mysql版本信息(CentOS系统需要正常连接网络)。

yum list | grep mysql 或 yum -y list mysql*

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

rpm -qa | grep mysql

有的话通过下面的命令来卸载掉

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

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

二:添加用户设置权限

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

cat /etc/passwd 查看用户列表

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

如果没有就创建

groupadd mysql

useradd -g mysql mysql

修改/usr/local/mysql权限

mkdir /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql

三:安装MySQL

安装编译代码需要包(在安装前,需先安装相关的依赖库)

yum -y install make gcc-c++ cmake bison-devel ncurses-devel

  • cmake:
    MySQL使用cmake跨平台工具预编译源码,用于设置mysql的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等。安装最新版本即可。
  • make3.75:
    mysql源代码是由C和C++语言编写,在Linux下使用make对源码进行编译和构建,要求必须安装make 3.75或以上版本
  • gcc4.4.6:
    GCC是Linux下的C语言编译工具,mysql源码编译完全由C和C++编写,要求必须安装GCC4.4.6或以上版本
  • Boost1.59.0:
    mysql源码中用到了C++的Boost库,要求必须安装boost1.59.0或以上版本
  • bison2.1
    Linux下C/C++语法分析器
  • ncurses
    字符终端处理库

下载Mysql5.6.14

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16.tar.gz

tar xvf mysql-5.6.14.tar.gz

cd /usr/local/mysql/mysql-5.6.14

配置mysql预编译参数

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
  • -DCMAKE_INSTALL_PREFIX:安装路径
  • -DMYSQL_DATADIR:数据存放目录
  • **DWITH_BOOST:**boost源码路径
  • **-DSYSCONFDIR:**my.cnf配置文件目录
  • -DEFAULT_CHARSET:数据库默认字符编码
  • -DDEFAULT_COLLATION:默认排序规则
  • -DENABLED_LOCAL_INFILE:允许从本文件导入数据
  • -DEXTRA_CHARSETS:安装所有字符集

编译并安装

make && make install

注明:更多编译的参数可以参考(整个过程需要30分钟左右……漫长的等待MySQL5.7.13的参考)

初始化系统数据库

cd /usr/local/mysql

chown -R mysql:mysql

./bin/mysql_install_db –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data#MySQL 5.7.6之前的版本执行这个脚本初始化系统数据库(本文使用此方式初始化)

./bin/mysqld –initialize-insecure –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data#5.7.6之后版本初始系统数据库脚本

注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索”$basedir/my.cnf”,在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!

注意:在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。

在使用"yum update"更新系统后,需要检查下/etc目录下是否会多出一个my.cnf,如果多出,将它重命名成别的。否则,MySQL将使用这个配置文件启动,可能造成无法正常启动等问题。

配置文件及参数优化

shell> cp support-files/my-default.cnf /etc/my.cnfshell> vim /etc/my.cnf[client]port=3306socket=/usr/local/mysql/mysql.sock[mysqld]character-set-server=utf8collation-server=utf8_general_ciskip-external-lockingskip-name-resolveuser=mysqlport=3306basedir=/usr/local/mysqldatadir=/usr/local/mysql/datatmpdir=/usr/local/mysql/temp# server_id = .....socket=/usr/local/mysql/mysql.socklog-error=/usr/local/mysql/logs/mysql_error.logpid-file=/usr/local/mysql/mysql.pidopen_files_limit=10240back_log=600max_connections=500max_connect_errors=6000wait_timeout=605800#open_tables=600#table_cache = 650#opened_tables = 630max_allowed_packet=32Msort_buffer_size=4Mjoin_buffer_size=4Mthread_cache_size=300query_cache_type=1query_cache_size=256Mquery_cache_limit=2Mquery_cache_min_res_unit=16ktmp_table_size=256Mmax_heap_table_size=256Mkey_buffer_size=256Mread_buffer_size=1Mread_rnd_buffer_size=16Mbulk_insert_buffer_size=64Mlower_case_table_names=1default-storage-engine=INNODBinnodb_buffer_pool_size=2Ginnodb_log_buffer_size=32Minnodb_log_file_size=128Minnodb_flush_method=O_DIRECT#####################thread_concurrency=32long_query_time=2slow-query-log=onslow-query-log-file=/usr/local/mysql/logs/mysql-slow.log[mysqldump]quickmax_allowed_packet=32M[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid

配置mysql服务

shell> service mysqld start       # 启动mysql服务shell> service mysqld stop        # 停止mysql服务shell> service mysqld restart     # 重新启动mysql服务

设置数据库密码

shell> /usr/local/mysql/bin/mysql -e "grant all privileges on *.* to root@'127.0.0.1' identified by "root" with grant option;"shell> /usr/local/mysql/bin/mysql -e "grant all privileges on *.* to root@'localhost' identified by "root" with grant option;"# 开启远程登录(将host设为%即可)/usr/local/mysql/bin/mysql -e "grant all privileges on *.* to root@'%' identified by "root" with grant option;"

配置mysql环境变量

shell> vim /etc/profileshell> export PATH=/usr/local/mysql/bin:$PATHshell> source /etc/profile

其他注意事项

如果中途编译失败了,需要删除cmake生成的预编译配置参数的缓存文件和make编译后生成的文件,再重新编译。

shell> cd /opt/mysql-servershell> rm -f CMakeCache.txtshell> make clean

问题:
遇上-bash: mysql: command not found的情况别着急,这个是因为/usr/local/bin目录下缺失mysql导致,只需要一下方法建立软链接,即可以解决:

把mysql安装目录,比如MYSQLPATH/bin/mysql,映射到/usr/local/bin目录下: # cd /usr/local/bin# ln -fs /MYSQLPATH/bin/mysql mysql

搜狐镜像下载地址:

http://mirrors.sohu.com/mysql/MySQL-5.5/

http://mirrors.sohu.com/mysql/MySQL-5.6/

http://mirrors.sohu.com/mysql/MySQL-5.7/

Mysql其他编译安装参考链接

MySQL5.7.13源码编译安装与配置

CentOS 6.4下编译安装MySQL 5.6.14

MySQL 5.6.23 Install

0 0
原创粉丝点击