编译安装mysql-5.5.11
在mysql5.5以上的版本采用的是cmake编译安装,不在采用之前gnu autotools 工具的 ./configure make make install编译安装了。
Cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,比如针对不同的平台编译。
一.编译环境的准备
安装所需要系统库相关库文件
gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*
源码包:
cmake-2.8.10.2.tar.gz mysql-5.5.11.tar.gz
源码包地址:
http://pan.baidu.com/s/1eQwGXVW
二.编译安装cmake
[root@mysql MASQL]# tar -zxvf cmake-2.8.10.2.tar.gz
[root@mysql MASQL]# cd cmake-2.8.10.2
[root@mysql cmake-2.8.10.2]# ./bootstrap
[root@mysql cmake-2.8.10.2]# make && make install
三.编译安装mysql
1.创建mysql安装目录
[root@mysql cmake-2.8.10.2]# make /usr/local/mysql
2.创建数据存放目录
【Mysql的数据目录应该放在一个独立的lv上】
[root@mysql MASQL]# mkdir -p /data/mysql
3.创建用户和用户组与赋予数据存放目录权限
[root@mysql MASQL]# groupadd -r mysql
[root@mysql MASQL]# useradd -r -g mysql -s /sbin/nologin mysql
[root@mysql MASQL]# chown mysql.mysql /data/mysql/
4.编译安装mysql-5.5.11
[root@mysql MASQL]# tar -zxvf mysql-5.5.11.tar.gz
[root@mysql MASQL]# cd mysql-5.5.11
[root@mysql mysql-5.5.11]# cmake -DCMAKE_INSTALL_PREFIX=/usr/loca l/mysql \
> -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
> -DWITH_MYISAM_STORAGE_ENGINE=1 \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_MEMORY_STORAGE_ENGINE=1 \
> -DWITH_READLINE=1 \
> -DENABLED_LOCAL_INFILE=1 \
> -DMYSQL_DATADIR=/data/mysql \
> -DMYSQL_USER=mysql \
> -DMYSQL_TCP_PORT=3306
[root@mysql mysql-5.5.11]# make
[root@mysql mysql-5.5.11]# make install
[以下是对配置参数的详细解释,这里介绍的比我配置的要多,大家在配置的时候根据需要添加]
cmake -DCMAKE_INSTALL_PREFIX=/usr/loca l/mysql \
指定camke编译软件的安装路径
> -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
指定cmake编译软件的默认套接字文件路径
> -DDEFAULT_CHARSET=utf8 \
指定默认的字符集为utf8
> -DDEFAULT_COLLATION=utf8_general_ci \
指定默认的排序规则
> -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
> -DWITH_MYISAM_STORAGE_ENGINE=1 \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_MEMORY_STORAGE_ENGINE=1 \
> -DWITH_READLINE=1 \
> -DENABLED_LOCAL_INFILE=1 \
启用LOCAL_INFILE
> -DMYSQL_DATADIR=/data/mysql \
指定cmake编译软件的数据安装路径
>-DSYSCONFDIR=/usr/local/mysql
指定cmake编译软件的配置文件路径
> -DMYSQL_USER=mysql \
> -DMYSQL_TCP_PORT=3306
指定camke编译软件的默认端口
>-DWITH_DEBUG=0
表示不启用DEBUG功能
>-DENABLE_PROFILING=1
表示启用PROFILING功能,PROFILING表示性能分析
5.复制配置文件并且增加一些内容
[root@mysql mysql-5.5.11]# cp support-files/my-medium.cnf /usr/local/mysql/my.cnf
support-files下面有这样四个文件,根据你机器的内存大小可以选择复制哪一个文件,由大到小依次为:
my-huge.cnf my-large.cnf my-medium.cnf my-small.cnf
通常复制my-medium.cnf即可
#如果你的机器的内存较大,可以复制My-huge.cnf文件
vim /usr/local/mysql/my.cnf
在[mysqld]这个模块中添加以下两行,其实主要是添加第二行【数据文件存储路径】
basedir=/usr/local/mysql
datadir=/data/mysql/
6.初始化数据库
(执行前 需要chmod 755 scripts/mysql_install_db 赋给文件执行权限)
[root@mysql mysql-5.5.11]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/
注:#basedir mysql安装路径 datadir 数据库文件储存路径
7.设置mysqld的开机启动:
[root@mysql mysql-5.5.11]# cp support-files/mysql.server /etc/init.d/mysql
[root@mysql mysql-5.5.11]# chmod 755 /etc/init.d/mysql
[root@mysql mysql-5.5.11]# chkconfig mysql on
8.配置环境
为了方便,将mysql 的bin目录加到PATH中,在/etc/profile中加入myslq/bin
export PATH=/usr/local/mysql/bin:$PATH
[root@mysql mysql-5.5.11]# source /etc/profile [这一步别忘了哦,否则系统还是不能识别你新增加的环境变量]
9启动mysql服务
[root@mysql mysql-5.5.11]# /etc/init.d/mysql start
Starting MySQL.... SUCCESS!
如果你在启动服务的时候出现了以下报错:
[root@mysql mysql-5.5.11]# /etc/init.d/mysql start
Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/mysql.pid).
解决办法:
vim /usr/local/mysql/my.cnf
在[mysqld]这个模块中添加以下两行,其实主要是添加第二行【数据文件存储路径】
basedir=/usr/local/mysql
datadir=/data/mysql/
启动完成之后用ps -ef |grep mysql 命令查看是否启动
[root@mysql mysql-5.5.11]# mysql -u root -p
Enter password:
【直接回车,因为此时root用户是没有密码的,若登录到mysql服务器证明一切配置ok】
四. 标准的mysql服务配置
1.设置root帐户的密码
[root@mysql mysql-5.5.11]# mysqladmin -u root password 'mysqlroot'
2.删除本机匿名连接的空密码帐号
【删除原因:mysql默认安装完成后一般会生成五个用户,三个root 两个匿名用户
root:root@127.0.0.1 root@localhost root@hostname 匿名:@localhost @hostname,而且这些用户是不需要密码就可以登录mysql服务器的,这对于mysql服务器是及其不安全的】
本机登录mysql
[root@mysql mysql-5.5.11]# mysql -u root -p
然后输入上面设置的密码,登录后在mysql的命令行中执行:
mysql> use mysql; //选择默认数据库mysql
mysql> update user set password='root' where user = '127.0.0.1';
mysql> delete from user where password="";
mysql> flush privileges;
mysql> quit