编译安装mysql5.6.16

mysql5.6.16的安装和之前的5.5、5.1有些不同,编译的时候不再使用./configure来进行了,使用了cmake命令来进行编译项目。


1.准备编译环境


因为我的Linux是刚安装的,需要安装很多的必要程序。

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

       autoconf automake zlib* fiex* libxml* libmcrypt* libtool-ltdl-devel*


2.下载MySQL


进入http://dev.mysql.com/downloads/mysql/ 的source/Generic Linux (Architecture Independent), Compressed TAR Archive,文件mysql-5.6.16.tar.gz。


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

tar xvf mysql-5.6.16.tar.gz

cd mysql-5.6.16

3.编译源码


接下来组织项目

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/data/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=/tmp/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

注意,这个cmake是替代以前的./configure 步骤。如果你需要更多的参数,请参考http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html。


有时候会出现类似的问题。


Googlemock was not found. gtest-based unit tests will be disabled. You can run cmake . -DENABLE_DOWNLOADS=1 to automatically download and build required components from source. — If you are inside a firewall, you may need to use an http proxy: export http_proxy=http://example.com:80

使用参数-DENABLE_DOWNLOADS=1 自动下载。

有网络限制,设置http代理export http_proxy=http://example.com:80。环境变量http_proxy 也为 curl 等其他工具所用。尽管 yum 可以识别大写或小写的 http_proxy,但curl 要求环境变量的名称是小写。

如果这个cmake这个步骤有出现问题,解决后重新再cmake一次。如果输出类似这样,那么就好了。

-- Running cmake version 2.6.4

-- MySQL 5.6.16

-- Packaging as: mysql-5.6.16-Linux-x86_64

-- HAVE_VISIBILITY_HIDDEN

-- HAVE_VISIBILITY_HIDDEN

-- HAVE_VISIBILITY_HIDDEN

-- Using cmake version 2.6.4

-- Not building NDB

-- Library mysqlclient depends on OSLIBS -lpthread;m;rt;dl

-- GMOCK_SOURCE_DIR:/root/mysql-5.6.16/source_downloads/gmock-1.6.0

-- GTEST_LIBRARIES:gmock;gtest

-- Library mysqlserver depends on OSLIBS -lpthread;m;rt;crypt;dl

-- Configuring done

-- Generating done

-- Build files have been written to: /root/mysql-5.6.16

4.接着编译源码


make && make install

编译时间缓慢,等待中…


修改文件权限,生成数据库


groupadd mysql

useradd -r -g mysql mysql

cd /usr/local/mysql

chown -R mysql:mysql .

scripts/mysql_install_db --user=mysql --ldata=/data/mysql/data

chown -R root .

chown -R mysql data

说明:参数--ldata说明你的数据文件存放的目录,如果你使用默认的路径,那么这个参数可以去除。如果你不增加此参数,但是在配置文件(见下方的datadir配置)中指定了其他的目录,那么会在启动MySQL的时候出现类似的提示:


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

出现这个的解决办法就是增加--ldata参数,指定和配置文件中datadir相同的值,重新执行mysql_install_db即可。


5.设置配置文件


MySQL 5.6.8开始,就不在分发my.cnf等配置的demo,所以想随便拿一个用都比较麻烦。


my.cnf的配置文件的默认读取顺序为

File Name(上面的优先) Purpose

/etc/my.cnf Global options

/etc/mysql/my.cnf Global options

SYSCONFDIR/my.cnf Global options

$MYSQL_HOME/my.cnf Server-specific options

defaults-extra-file The file specified with --defaults-extra-file=path, if any

~/.my.cnf User-specific options

~/.mylogin.cnf Login path options

[client]

port=3306

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

default-character-set = utf8

 

[mysqld]

port=3306

bind-address=127.0.0.1

basedir=/usr/local/mysql

datadir=/data/data/mysql/data

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

user=mysql

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

symbolic-links=0

 

############# default settings  ################

# time zone

default-time-zone = system

character-set-server = utf8

default-storage-engine = InnoDB

 

[mysqld_safe]

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

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

我的这个配置比较简单,声明一下常用的变量,如果你需要对性能优化,那么你需要细细研读一下配置文件。可以参考


http://www.ha97.com/4110.html

http://dev.mysql.com/doc/refman/5.6/en/server-options.html

启动MySQL,开机自动启动设置


手动启动MySQL。


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

/etc/init.d/mysql start

##或者

service mysql start

在上面的步骤后,开机自动启动设置


chkconfig --add mysql

##有的系统需要下面的

chkconfig --level 345 mysql on

可以参考:http://dev.mysql.com/doc/refman/5.6/en/automatic-start.html


6.修改root密码


默认的密码是空的,很危险,需要修改一下。


在此之前,为方便调用mysql,我们先生成一个mysql的软链。


ln -s /usr/local/mysql/bin/mysql /usr/bin/

然后修改密码


mysql -uroot  -h127.0.0.1 -p

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

将来如果你忘记了root密码,可以参考重置MySQL密码。


通过上面的步骤,就可以使用MySQL数据库了,另外可以为mysql安装phpmyadmin作为前端的管理界面。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章