centos6源码编译安装mysql

到mysql官网下载自己需要的版本,我这里以mysql-5.6.13.tar.gz为例。

创建mysql用户:useradd  -r  mysql

安装依赖包:

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

编译有一个warning:Bison executable not found in PATH(可以继续安装不影响使用)

可以通过yum -y install  bison-devel bison

tar xf mysql-5.6.13.tar.gz,进入解压后的目录进行编译(可以将编译内容作为一个shell脚本执行,也方便下次编译):

#!/bin/bash
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DENABLED_LOCAL_INFILE=1 \
-DSYSCONFDIR=/usr/local/mysql/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306

make && make install

mkdir  /usr/local/mysql/etc

mkdir  /usr/local/mysql/log

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

cp  /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysql

部分编译参数解释:

DCMAKE_INSTALL_PREFIX  /usr/local/mysql      安装路径
DEFAULT_CHARSET  latin1      拉丁 默认字符集
DEFAULT_COLLATION    latin1_swedish_ci     指定服务器默认的校对规则(排序规则)
ENABLED_LOCAL_INFILE    OFF     是否开启内部加载外部文件功能  默认off  1代表开启0代表关闭
* MYSQL_DATADIR                     数据文件目录
* SYSCONFDIR                           初始化参数文件目录(主配置文件路径(默认优先去/etc目录去找))
* MYSQL_TCP_PORT                    服务端口号,默认3306
* MYSQL_UNIX_ADDR                   socket文件路径,默认/tmp/mysql.sock 
* WITHOUT_xxx_STORAGE_ENGINE        指定不编译的存储引擎
* WITH_xxx_STORAGE_ENGINE       指定静态编译到mysql的存储引擎,MyISAM,MERGE,MEMBER以及CSV四种引擎默认即被编译至服务器,不需要特别指定。
* WITH_EXTRA_CHARSETS    扩展字符集
-DWITH_PARTITION_STORAGE_ENGINE=1    支持分区

编写配置文件:

mysql默认读取/etc/my.cnf ,没有的话再到安装配置目录下进行读取,可以直接修改/etc/my.cnf,也可以在删除/etc/my.cnf,然后再自己设定的配置目录下编写my.cnf,我配置目录是/usr/local/mysql/etc,安装不会产生这个目录,需要自己进行创建,mysql的安装目录也会产生一个my.cnf,生效的优先级是:/etc/my.cnf ==> /usr/local/mysql/my.cnf ==> /usr/local/mysql/etc/my.cnf,下面是基本的配置信息,其他选项可以自己按需要进行添加

[mysqld_safe]
logs-error = /usr/local/mysql/log/mysql-err.logs

[mysqld]
user=mysql
socket = /tmp/mysql.sock
port = 3306
basedir = /usr/local/mysql
pid-file = /usr/local/mysql/mysqld.pid
datadir = /usr/local/mysql/data

初始化数据库(安装默认的库表):

cd  /usr/local/mysql/scripts

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

--no-defaults:不要从任何的配置文件中读取相应的参数,忽略掉mysql安装过程中的默认配置,如创建默认用户并设置默认密码等,可以视情况决定是否使用这个参数

启动数据库:

service mysql start

可能出现的错误:

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

1.权限问题:chown  mysql.mysql  /usr/local/mysql  -R

2.配置文件书写错误,重复检查一遍,特别是路径;或者默认的配置文件没有删除或修改,自己编写的配置文件没有生效;检查配置文件中的目录是否都存在

3.查看错误日志,根据日志报错进行问题解决

检查数据库端口是否启动:

netstat -tnpl|grep 3306

启动成功默认是无密码的,可以直接mysql回车进入数据库,如果提示sock文件问题,找到自己数据库的sock文件位置,通过-S指定进入sock进入数据库,如:mysql  -S  /tmp/mysql.sock,也可以创建链接文件到系统提示的位置。

欢迎交流,如果有疑问或错误的话,请在下方评论区撰写,我会尽快回复~

 

 

 

 

你可能感兴趣的:(mysql)