源代码安装mysql

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的安装过程

wKioL1WsvAzAU1yoAAJsdMebAaE679.jpg


        Setup的过程

wKiom1Wsul3DzklpAALxF6F2K44206.jpg        cmake编译mysql源代码(过程较耗时)

[root@fcy mysql-5.6.10]# cmake .
    ......(过程略)

        过程中会报错,安装ncursesncurses-devel即可

wKiom1Wsuy-Dxb3RAAMRZLFUmR4681.jpg        

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的路径添加到系统变量

wKioL1Wsv6Civeq0AABPhcv96Q8479.jpg

        刷新脚本并显示

[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

        mysqllib库动态链接到系统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

wKiom1Wsv1mwN8dmAAKpM2_Xe_I759.jpg


4、总结

    注意源代码安装过程中的错误信息提示,一般都是缺少库文件或者安装工具,按照提示安装即可。

你可能感兴趣的:(mysql,源代码)