mysql编译安装

以前的项目都用Oracle,新项目准备使用Mysql数据库,所以就先装个玩一下,把安装过程记录一下,当 是学习mysql 的开篇了!mysql是开源的,作为一只有那么点GEEK情结的超猿类,除了安装外,还是要编译一把才过瘾的!

编译

  • 基础工具准备:

    要编译,首先需要准备好编译的环境工具,此次我的linux环境还是CentOS6.5版本,通过以下脚本安装好最新的编译工具与库文件:

[root@iZ28gxqlqfsZ ~]# yum install gcc gcc-c++ ncurses-devel perl<

同时我们需要安装cmake,我们使用当前最新的稳定版本V3.2,命令如下:

[root@iZ28gxqlqfsZ ~]# wget http://www.cmake.org/files/v3.2/cmake-3.2.0.tar.gz 
[root@iZ28gxqlqfsZ ~]# tar -xzvf cmake-3.2.0.tar.gz 
[root@iZ28gxqlqfsZ ~]# cd cmake-3.2.0
  • 源码准备

正常进入mysql官网下载页面,找不到源码的下载按钮(听说是中国被墙),进入如下页面后选择一个国家的FTP资源去下载,我选择了鸟国的!

http://dev.mysql.com/downloads/mirrors.html
[root@iZ28gxqlqfsZ ~]# wgetftp:ftp://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.5/mysql-5.5.44.tar.gz
[root@iZ28gxqlqfsZ ~]# tar -zxv -f mysql-5.5.44.tar.gz
  • 用户环境准备:

数据库用户组与用户名

[root@iZ28gxqlqfsZ ~]# groupadd mysql
[root@iZ28gxqlqfsZ ~]# useradd -r -g mysql mysql

mysql安装目录

[root@iZ28gxqlqfsZ local]# mkdir <span style="color: #ff0000;">/usr/local/mysql</span>
[root@iZ28gxqlqfsZ local]# cd /usr/local/mysql
[root@iZ28gxqlqfsZ mysql]# chown -R mysql:mysql .

mysql数据库文件目录

[root@iZ28gxqlqfsZ ~]# mkdir <span style="color: #ff0000;">/data/mysql</span>
[root@iZ28gxqlqfsZ ~]# cd /data/mysql
[root@iZ28gxqlqfsZ ~]# chown -R mysql:mysql .

环境变形执行路径更改

vim /etc/profile 
#mysql path
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export PATH

source /etc/profile

设置源码编译配置脚本:

[root@iZ28gxqlqfsZ mysql-5.5.44]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
> -DMYSQL_DATADIR=/data/mysql \
> -DMYSQL_TCP_PORT=3306 \
> -DEXTRA_CHARSETS=all
  • 编译mysql

删除CMakeCache.txt,后重新编译:

[root@iZ28gxqlqfsZ mysql-5.5.44]# rm CMakeCache.txt
[root@iZ28gxqlqfsZ mysql-5.5.44]# make
  • 安装MYSQL:
[root@iZ28gxqlqfsZ mysql-5.5.44]# make install

到这一步mysql 数据库就已经编译安装好了!

初始化

  • 初始化数据库
[root@iZ28gxqlqfsZ ~]# cd /usr/local/mysql
[root@iZ28gxqlqfsZ ~]# scripts/mysql_install_db --user=mysql --datadir=/data/mysql

配置文件修改

[root@iZ28gxqlqfsZ mysql]# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
[root@iZ28gxqlqfsZ mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@iZ28gxqlqfsZ mysql]# cp /usr/local/mysql/support-files/my-medium.cnf  /usr/local/mysql/my.cnf

修改启动参数:
my.cnf 配置的[mysqld]项新增两个目录配置

[root@iZ28gxqlqfsZ mysql]# vi /usr/local/mysql/my.cnf

[mysqld]
...
basedir = /usr/local/mysql
datadir = /data/mysql
  • 启动数据库

启动数据库并让数据库开机自动启动

[root@iZ28gxqlqfsZ ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql

[root@iZ28gxqlqfsZ mysql]# chkconfig –level 35 mysqld on

检查mysql服务是否启动:查看3306端口是否由mysqld 进程正在监听,因为没有设置密码,直接打mysql 命令进入看是否能进入root用户

[root@iZ28gxqlqfsZ mysql]# netstat -tulnp | grep 3306
[root@iZ28gxqlqfsZ mysql]# mysql

到此,mysql 数据库已经编译安装完成!小伙伴可以愉快进去玩耍了!当然mysql 数据库跟Oracle 数据库的上层的使用基本差不多,只是有些细微的结构上的差别,下面就列出最基本的操作!

 

mysql5.6安装

RPM方式安装MySQL5.6

a. 检查MySQL及相关RPM包,是否安装,如果有安装,则移除(rpm –e 名称)

1
[root@localhost ~]# rpm -qa | grep -i mysql

2
mysql-libs-5.1.66-2.el6_3.x86_64

3
[root@localhost ~]# yum -y remove mysql-libs*

b. 下载Linux对应的RPM包,如:CentOS6.4_64对应的RPM包,如下:

1
[root@localhost rpm]# ll

2
total 74364

3
-rw-r--r--. 1 root root 18442536 Dec 11 20:19 MySQL-client-5.6.15-1.el6.x86_64.rpm

4
-rw-r--r--. 1 root root  3340660 Dec 11 20:06 MySQL-devel-5.6.15-1.el6.x86_64.rpm

5
-rw-r--r--. 1 root root 54360600 Dec 11 20:03 MySQL-server-5.6.15-1.el6.x86_64.rpm

c. 安装MySQL

1
[root@localhost rpm]# rpm -ivh MySQL-server-5.6.15-1.el6.x86_64.rpm

2
[root@localhost rpm]# rpm -ivh MySQL-devel-5.6.15-1.el6.x86_64.rpm

3
[root@localhost rpm]# rpm -ivh MySQL-client-5.6.15-1.el6.x86_64.rpm

4
#修改配置文件位置

5
[root@localhost rpm]# cp /usr/share/mysql/my-default.cnf /etc/my.cnf

d. 初始化MySQL及设置密码

1
[root@localhost rpm]# /usr/bin/mysql_install_db

2
[root@localhost rpm]# service mysql start

3
[root@localhost rpm]# cat /root/.mysql_secret  #查看root账号密码

4
# The random password set for the root user at Wed Dec 11 23:32:50 2013 (local time): qKTaFZnl

5
[root@localhost ~]# mysql -uroot –pqKTaFZnl

6
mysql> SET PASSWORD = PASSWORD('123456');    #设置密码为123456

7
mysql> exit

8
[root@localhost ~]# mysql -uroot -p123456

e. 允许远程登陆

01
mysql> use mysql;

02
mysql> select host,user,password from user;

03
+-----------------------+------+-------------------------------------------+

04
| host                  | user | password                                  |

05
+-----------------------+------+-------------------------------------------+

06
| localhost             | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

07
| localhost.localdomain | root | *1237E2CE819C427B0D8174456DD83C47480D37E8 |

08
| 127.0.0.1             | root | *1237E2CE819C427B0D8174456DD83C47480D37E8 |

09
| ::1                   | root | *1237E2CE819C427B0D8174456DD83C47480D37E8 |

10
+-----------------------+------+-------------------------------------------+

11

12
mysql> update user set password=password('123456') where user='root';

13
mysql> update user set host='%' where user='root' and host='localhost';

14
mysql> flush privileges;

15
mysql> exit

f. 设置开机自启动

1
[root@localhost ~]# chkconfig mysql on

2
[root@localhost ~]# chkconfig --list | grep mysql

3
mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off

g. MySQL的默认安装位置

1
/var/lib/mysql/               #数据库目录

2
/usr/share/mysql              #配置文件目录

3
/usr/bin                     #相关命令目录

4
/etc/init.d/mysql              #启动脚本

修改字符集和数据存储路径

配置/etc/my.cnf文件,修改数据存放路径、mysql.sock路径以及默认编码utf-8.

view plain copy

在CODE上查看代码片派生到我的代码片

  1. [client]  
  2. password        = 123456  
  3. port            = 3306  
  4. default-character-set=utf8
  5. [mysqld]  
  6. port            = 3306  
  7. character_set_server=utf8
  8. character_set_client=utf8
  9. collation-server=utf8_general_ci
  10. #(注意linux下mysql安装完后是默认:表名区分大小写,列名不区分大小写; 0:区分大小写,1:不区分大小写)  
  11. lower_case_table_names=1
  12. #(设置最大连接数,默认为 151,MySQL服务器允许的最大连接数16384; )  
  13. max_connections=1000
  14. [mysql]  
  15. default-character-set = utf8

查看字符集