1、源代码安装需要解决的问题
1)、编译环境(Develoment tools);
2)、指定安装路径(编译前用--prifix指定);
3)、搜索路径,环境变量(添加进/etc/profile中);
4)、链接头文件(在/usr/include将源码产生的头文件链接到此处);
5)、链接库文件(在/etc/ld.so.conf.d/下创建一个.conf结尾的文件,添加库路径即可);
6)、修改控制脚本(将控制脚本放在/etc/init.d/下,并赋予可执行权限);
7)、设置开机自启动(chkconfig --add 脚本名称);
8)、支持man手册(echo "MANPATH man路径">>/etc/man.config)。
2、mysql数据库简介
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。
3、案列实施
1)、实验环境:
操作系统:CentOS6.5-32bit
开发环境:Development tools,ncurses,ncurses-devel,pcre-devel
源代码:cmake-2.8.10.2.tar.gz,mysql-5.6.10.tar.gz
2)、实验步骤:
拷贝安装所需的源代码
[root@fcy mysql]# ll /mnt/mysql/ total 39988 -rw-r--r--. 1 root root 5768373 Jul 20 19:25 cmake-2.8.10.2.tar.gz #跨平台编译工具 -rw-r--r--. 1 root root 35174149 Jul 20 19:20 mysql-5.6.10.tar.gz #mysql服务
安装源代码安装所需环境
yum �Cdisablerepo=\* --enablerepo=c6-mediagroupinstall “Development tools” �Cy
解压缩到/usr/local/src
[root@fcymysql]# tar -zxvf cmake-2.8.10.2.tar.gz -C /usr/local/src ......(过程略) [root@fcy mysql]# tar -zxvfmysql-5.6.10.tar.gz -C /usr/local/src ......(过程略)
进入/usr/local/src/cmake目录,指定安装目录为/usr/local/
[root@fcy cmake-2.8.10.2]# ./configure--prefix=/usr/local/ ......(过程略) [root@fcy cmake-2.8.10.2]#make &&make install ......(过程略)
进入/usr/local/mysql目录(安装之前记得卸载系统内的低版本mysql,不然会有冲突),进入后查看一下,发现有一个名称为INSTALL_SOURCE的文件,用vim编辑器打开,在3788行左右,有该版本mysql的安装过程
Setup的过程
用cmake编译mysql源代码(过程较耗时)
[root@fcy mysql-5.6.10]# cmake . ......(过程略)
过程中会报错,安装ncurses和ncurses-devel即可
yum�Cdisablerepo=\* --enablerepo=c6-media install ncurses ncurses-devel �Cy
安装完成后删除解压的mysql代码包,重新解压缩在编译即可
[root@fcy mysql-5.6.10]#Make&& make install
创建用户组musql
[root@fcymysql]# groupadd mysql
创建用户mysql并加入到mysql组
[root@fcymysql]# useradd -r -g mysql mysql
进入到/usr/local/mysql目录,修改所有文件的用户和组为mysql
[root@fcy mysql]# chown -R mysql:mysql . [root@fcy mysql]# ll total 76 -rw-r--r--. 1 mysql mysql 17987 Jan 23 2013 COPYING -rw-r--r--. 1 mysql mysql 7468 Jan 23 2013 INSTALL-BINARY -rw-r--r--. 1 mysql mysql 2552 Jan 23 2013 README drwxr-xr-x. 2 mysql mysql 4096 Jul 20 21:10bin drwxr-xr-x. 4 mysql mysql 4096 Jul 20 21:09data drwxr-xr-x. 2 mysql mysql 4096 Jul 20 21:09docs drwxr-xr-x. 3 mysql mysql 4096 Jul 20 21:09include drwxr-xr-x. 3 mysql mysql 4096 Jul 20 21:09lib drwxr-xr-x. 4 mysql mysql 4096 Jul 20 21:10man drwxr-xr-x. 10 mysql mysql 4096 Jul 20 21:10 mysql-test drwxr-xr-x. 2 mysql mysql 4096 Jul 20 21:10scripts drwxr-xr-x. 28 mysql mysql 4096 Jul 20 21:10 share drwxr-xr-x. 4 mysql mysql 4096 Jul 20 21:10sql-bench drwxr-xr-x. 3 mysql mysql 4096 Jul 20 21:10 support-files
安装mysql默认数据库,并指定运行用户为mysql
[root@fcymysql]# scripts/mysql_install_db --user=mysql
查看/usr/local/mysql/data目录生成的默认数据库
[root@fcy mysql]# ll data total 110604 -rw-rw----. 1 mysql mysql 50331648 Jul 2022:12 ib_logfile0 -rw-rw----. 1 mysql mysql 50331648 Jul 2022:12 ib_logfile1 -rw-rw----. 1 mysql mysql 12582912 Jul 2022:12 ibdata1 drwxr-xr-x. 2 mysql mysql 4096 Jul 20 22:12 mysql drwx------. 2 mysql mysql 4096 Jul 20 22:12 performance_schema drwxr-xr-x.2 mysql mysql 4096 Jul 20 21:09 test
修改/usr/local/mysql/下的所有者为root
[root@fcy mysql]# chown -R root . [root@fcy mysql]# ll total 80 -rw-r--r--. 1 root mysql 17987 Jan 23 2013COPYING -rw-r--r--. 1 root mysql 7468 Jan 23 2013 INSTALL-BINARY -rw-r--r--. 1 root mysql 2552 Jan 23 2013 README drwxr-xr-x. 2 root mysql 4096 Jul 20 21:10bin drwxr-xr-x. 5 root mysql 4096 Jul 20 22:12data drwxr-xr-x. 2 root mysql 4096 Jul 20 21:09docs drwxr-xr-x. 3 root mysql 4096 Jul 20 21:09include drwxr-xr-x. 3 root mysql 4096 Jul 20 21:09lib drwxr-xr-x. 4 root mysql 4096 Jul 20 21:10man -rw-r--r--. 1 root root 943 Jul 20 22:12my.cnf drwxr-xr-x. 10 root mysql 4096 Jul 20 21:10 mysql-test drwxr-xr-x. 2 root mysql 4096 Jul 20 21:10scripts drwxr-xr-x. 28 root mysql 4096 Jul 20 21:10 share drwxr-xr-x. 4 root mysql 4096 Jul 20 21:10sql-bench drwxr-xr-x. 3 root mysql 4096 Jul 20 21:10 support-files
特别的将/usr/local/mysql/data目录的所有者改为mysql
[root@fcy mysql]# chown -R mysql data [root@fcy mysql]# ll -d data drwxr-xr-x. 5 mysql mysql 4096 Jul 20 22:12data
拷贝mysql的主配置文件到/etc/my.cnf
[root@fcy mysql]# cpsupport-files/my-default.cnf /etc/my.cnf
将mysql的路径添加到系统变量
刷新脚本并显示
[root@fcy mysql]# source /etc/profile [root@fcy mysql]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
拷贝启动控制脚本到/etc/init.d/ 并重命名为mysqld
[root@fcy mysql]# cpsupport-files/mysql.server /etc/init.d/mysqld
添加mysql为开机自启动
[root@fcy mysql]# chkconfig --add mysqld [root@fcy mysql]# chkconfig --list |grepmysqld mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
将mysql的lib库动态链接到系统lib库
[root@fcy mysql]# touch/etc/ld.so.conf.d/mysql.conf [root@fcy mysql]# echo"/usr/local/mysql/lib">>/etc/ld.so.conf.d/mysql
刷新并查看
[root@fcy mysql]# ldconfig [root@fcy mysql]# ldconfig -pv |grep mysql libmysqlclient_r.so.16(libc6) => /usr/lib/mysql/libmysqlclient_r.so.16 libmysqlclient.so.16(libc6) => /usr/lib/mysql/libmysqlclient.so.16
将man手册的路径告诉系统,方便查找man的相关帮助信息
[root@fcy mysql]# echo "MANPATH/usr/local/mysql/man" >>/etc/man.config
为mysql的头文件库创建链接
[root@fcy include]# pwd /usr/include [root@fcy include]# ln -s/usr/local/mysql/include/ mysql [root@fcy include]# ll |grep mysql lrwxrwxrwx. 1 root root 25 Jul 20 22:51mysql -> /usr/local/mysql/include/
启动mysql并检查端口3306是否启动
[root@fcy include]# service mysqld start Starting MySQL. SUCCESS! [root@fcy include]# netstat -tupln |grepmysqld tcp 0 0 :::3306 :::* LISTEN 6496/mysqld
为mysql数据库设置登录密码(初始密码为空)
[root@fcy include]# mysqladmin -u root -ppassword '123456' Enter password:
使用root账号登录并创建数据库
[root@fcy include]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.6.10 Source distribution Copyright (c) 2000, 2013, Oracle and/or itsaffiliates. All rights reserved. Oracle is a registered trademark of OracleCorporation and/or its affiliates. Other names may be trademarksof their respective owners. Type 'help;' or '\h' for help. Type '\c' toclear the current input statement. mysql>
创建数据库testdb
mysql> create databases testdb; ERROR 1064 (42000): You have an error inyour SQL syntax; check the manual that corresponds to your MySQL server versionfor the right syntax to use near 'databases testdb' at line 1 mysql> create database testdb; Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | | testdb | +--------------------+ 5rows in set (0.00 sec)
查看文件中的数据库testdb
4、总结
注意源代码安装过程中的错误信息提示,一般都是缺少库文件或者安装工具,按照提示安装即可。