您的位置:首页 > 运维架构 > Linux

linux源码包管理,MySQL二进制程序安装,源码包安装,yum安装mysql

2014-06-25 13:15 477 查看
什么是开放源码,编译程序和可执行文件 开放源码:就是程序代码,写给人类看的程序语言,但机器不认识,所以无法执行; 编译程序:将程序代码转译成为机器看得懂的语言; 可执行文件:经过编译程序变成二进制程序后,机器看得懂所以可以执行的档案;什么是函数库 函数库:是一种可执行代码的二进制格式,类似子程序的角色,可以被调用来执行一段功能函数;又分为动态与静态函数库,因为其没有程序执行入口,所以不能独立运行; 常用存放函数库的目录: /lib,/usr/lib,/usr/local/lib; 内核提供的函数库:/lib/modules; 库的配置文件:/etc/ld.so.conf,/etc/ld.so.conf.d/*.conf; 系统核心库:glibc; 静态库 1,文件名一般是libxxx.a; 2,整个函数库的所有数据都会被整合进目标代码中; 3,执行程序不再需要外部的函数库支持; 4,如果静态函数库改变,整个程序必须重新编译; 5,利用函数库编译成的文件较大; 动态库 1,文件名一般是libxxx.so; 2,编译时不被编译进目标代码,程序执行到相关函数时才调用函数库中相应函数; 3,动态函数库产生的可执行文件较小; 4,动态函数库的改变不会影响程序,所以函数库升级方便; 5,由于函数库没有被整合进程序,所以程序的运行环境必须提供相应的库(不要随意删除和移动);什么是make与configure make:make是一个程序,根据makefile的定义,调用源代码和函数库以及编译器来进行编译; configure:检测系统环境,该环境是否有软件所需要的其他功能,以及定义如何编译,然后生成makefile文件; configure检测的内容: 1,是否有合适的编译程序可以编译本软件的代码; 2,是否已经存在本软件所需要的函数库,或者其他依赖的软件; 3,操作系统平台是否适合本软件,包括linux的核心版本; 4,核心的表头定义文件(header include)是否存在;Tarball软件:就是将软件的所有源代码先以tar打包,然后在压缩的文件,解压后通常有以下内容 1,源代码文件; 2,检测程序文件(可能是configure或config等文件名); 3,软件的简易说明与安装说明(INSTALL或README);什么是安装软件 1,将文件解压至指定的目录; 2,生成相应的数据文件;为什么要升级软件 1,需要新的功能,但旧版软件没有; 2,旧版软件可能有bug或漏洞,需要进行升级; 3,旧版软件的执行效率低,或不能达到需求;升级的方法分为两大类 1,直接以源码通过编译来安装与升级; 2,直接以编译好的binary program来安装与升级;源码包的安装流程 1,将源码包从厂商网页下载下来; 2,解压源码包; 3,开始用gcc进行源码的编译(会产生目标文件object files); 4,然后以gcc进行函数库,主和子程序的链接,以形成主要的二进制文件; 5,将上面的二进制文件以及相关的配置文件安装到主机中; 源代码 ==> 编译(二进制) ==> 链接 ==> 运行; 编译:将源代码转换成计算机可识别的二进制格式; 常见linux中的编译器:GCC,G++; 链接:将程序与库的调用入口关联起来; 动态链接:调用共享库; 静态链接:将所有依赖的库封装到程序中;源码安装的优点 1,有些特性是编译选定的,如果编译未选定此特性,将无法使用; 2,rpm的版本会落后于源码包,甚至落后很多,源码包升级比rpm更方便,不需要等待rpm制作者升级;软件的组成部分 二进制程序:通常的安装目录在/bin、/sbin、/usr/bin、/usr/sbin、/usr/local/bin、/usr/local/sbin; 程序包含CPU指令和数据; 库文件:可让其他程序调用,通常的目录/lib,/usr/lib,/usr/local/lib; 配置文件:通常目录/etc,配置文件一般为纯文本文件或XML文件; 帮助文件:有man,README,INSTALL等;README和INSTALL通常放在/usr/share/doc中;源码包安装的步骤 1,取得源码文件:将tarball文件在/usr/local/src目录下解压缩(系统推荐,非必须); 2,取得步骤流程:进入解压后的目录中,查阅INSTALL和README等文件(重要); 3,解决依赖关系,安装所需要的软件:根据INSTALL和README的内容检查并安装相应软件; 4,建立makefile:使用configure或config检测安装环境,并创建Makefile文件; 5,编译:使用该目录下的Makefile作为make程序的参数配置文件,来进行编译或其他动作; 6,安装:使用make,并以Makefile参数配置文件,依据install这个target指定来安装到正确的路径;源码包安装的指令下达方式 1,./configure:该步骤让用户选定编译特性,检查系统环境和相关软件属性,然后生成Makefile; 2,make clean:make会读取Makefile中关于clean的操作,可删除目标档案,在无法确定源代码中有没有包含上次编译过的目标文件(*.o)使用,以保证是自己的机器所编译的执行档;(可根据实际情况省略) 3,make:make依据Makefile中的设定的操作进行编译,将源代码编译成可以被执行的可执行文件; 4,make install:make根据Makefile中关于install的项目,将所编译完成的数据安装到执行目录中;为了方便管理,通常建议 1,将源码包数据解压到/usr/local/src中; 2,安装时,最好安装到/usr/local这个默认路径下; 3,考虑未来反安装步骤,最好将每个软件单独安装在/usr/local下; 4,为安装到单独目录的软件的man page加入man path查找路径中;开始安装源码包 1,准备开发环境:为程序提供编译环境; 2,解压下载好的tar包,并查阅INSTALL和README文件:tar -zxvf xxx.tar.gz; 3,查看configure所支持的参数,并建立Makefile文件:./configure --help; --help获取脚本的使用帮助; --prefix=/path/to/somewhere 指定软件安装的位置; --sysconfdir=/path/to/config_file 指定配置文件的路径; 4,make clean(可选) 5,make 编译; 6,make check 测试编译后的文件是否正确(可选操作,不是所有的Makefile都定义了此功能) 6,make install 安装;进一步的操作 1,修改PATH环境变量,让系统可以识别此程序的二进制文件路径; a:在/etc/profile中指定PATH变量; b:在/etc/profile.d/目录下建立一个以.sh的文件,然后定义PATH变量; 2,默认情况下,系统搜索库文件的路径(/lib, /usr/lib); 要增添额外搜寻路径; 在/etc/ld.so.conf.d/中创建以.conf为后缀名的文件,而后把要增添的路径直接写至此文件中; ldconfig:重启后才生效,如果要立即生效,使用此命令; -v:显示重新搜寻库的过程; 3,头文件:输出给系统,头文件中包含了自己所提供的函数属性,用于被其他二次开发所使用的文件; 默认目录:/usr/include; 增添头文件搜寻路径,使用链接进行 a:ln -s /usr/local/name/include/* /usr/include; b:ln -s /usr/local/name/include /usr/include/name; 4,man文件路径:默认安装在--prefix指定的目录下的man目录中,而系统是在/usr/share/man中查找的; a:vim /etc/man.config; 添加:MANPATH /path/to/file:指定查找man文件的路径; b:man -M /PATH/TO/MAN_DIR COMMAND;如何将函数库加入到内存中:如果将常用的动态函数库预先加载到内存中,可以增加动态函数库的读取速度; 1,在/etc/ld.do.conf中新增一行写入想要读入缓存中的动态函数库所在的目录,例如:/usr/lib/mysql; 2,使用ldconfig将/etc/ld.do.conf的资料读入内存中; 3,同时也将数据记录一份在/etc/ld.so.cache文件中; ldconfig还可以用于判断动态函数库的链接信息 ldconfig [-f conf] [-C cache] ldconfig [-p] -f conf:conf指某个文件名,即使用conf作为libarary函数库的取得路径,而不是以/etc/ld.so.conf为默认值 -C cache:cache指某个文件名,即使用cache作为快取暂存的函数库资料,而不是以/etc/ld.so.cache为默认值 -p:列出目前所有函数库资料内容(在/etc/ld.so.cache内的资料)程序的动态函数库解析:ldd 用于判断某个可执行的二进制文件含有什么动态函数库; ldd [-vdr] [filename]:查看命令与库的依赖关系; -v:列出所有内容; -d:重新将资料有意识到link点显示出来; -r:将ELF有关的错误内容显示出来; 通常查询出来的第一个结果是程序的访问入口,不是依赖的库文件;检查下载后软件包的正确性 md5sum/sha1sum [-bvt] filename md5sum/sha1sum [--status|--warn] --check filename -b:使用binary的读档方式,默认为windows/DOS档案型态的读取方式 -c:检验文件指纹 -t:以文件方式来读取指纹 可以用这两条命令为系统关键文件的指纹记录下来,用于保证系统的安全,比如/etc/passwd和/etc/shadow;

MySQL简介以及二进制程序方式安装

MySQL:MySQL是一个关系型数据库系统,由MySQL AB公司开发,先手被Sun和Oracle收购,是目前最为流行的RDBMS之一; 官方站点:http://www.mysql.com/; MySQL的官方下载地址:http://dev.mysql.com/downloads/mysql/; MySQL搜狐镜像的下载地址:http://mirrors.sohu.com/mysql/; MySQL community相关软件的说明 MySQL Community Server mysql客户端和服务器整合起来的核心包; MySQL Cluster 提供Mysql集群功能的程序包,但其极少使用; MySQL Workbench 辅助设计mysql数据库的程序,如几张表,哪些字段等; MySQL Utilities MySQL工具组件,主要用于管理和维护MySQL; MySQL Proxy MySQL中间件,代理接收发往MySQL数据库的请求,将需要求路由至不同的后端主机上去; MySQL Connectors MySQL的连接器,程序连接MySQL的驱动; MySQL Benchmark Tool 对MySQL进行压力测试的工具;
MySQL rpm包的功能 mysql.i386 mysql的客户端; mysql-server.i386 mysql的服务器端; mysql-connector-odbc.i386 mysql的链接器; mysql-test mysql的测试组件; mysql-bench mysql的性能测试组件; php5-mysql php访问mysql的驱动;MySQL的安装方式(Linux系统) 1,源码编译安装; 从MySQL5.5开始就要用cmake安装了,已不能用./configure编译安装,我们查看一下mysql5.6.12的安装目录,从下面的安装目录我们可以看到,里面根本没有configure文件,cmake重要特性是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译。 2,通用二进制格式的程序;通用二进制包安装说明软件包已经编译好,不需要我们重新编译,我们只要解压一下,进行简单配置便可以运行使用! 3,rpm包安装;MySQL的配置文件:my.cnf,该文件是集中式的多段配置文件,通常放在/etc/目录下, [mysqld] 该段是对MySQL服务器的配置; [mysql] 为客户端程序提供配置; [client] 客户端和服务器工具的通用配置,包括mysqldump,mysqladmin等等; 注意: 1,MySQL的配置文件可以存放在多个位置,将所有找到的配置文件参数合并后生效,如果有重复的参数,后找到的参数生效; 2,配置文件的读取顺序:/etc/my.cnf,/etc/mysql/my.cnf,$MYSQL_BASE/my.cnf,~/.my.cnf;MySQL的程序 服务器程序:mysqld; 客户端程序:mysql;MySQL的数据目录(datadir) 二进制安装:/usr/local/mysql/data; rpm包安装:/var/lib/mysql; 建议将数据目录存放在lv上,以便于容量的扩展;MySQL监听端口:3306/tcp;使用通用二进制格式的MySQL二进制程序下载地址:http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.19-linux-glibc2.5-i686.tar.gz;为mysql准备数据目录:/mysql/data;1,创建mysql使用的系统用户和组 ; groupadd -r -g 306 mysql useradd -g 306 -u 306 -r mysql2,将程序包解压,并为其创建链接; tar xf /mysql-5.6.19-linux-glibc2.5-i686.tar.gz -C /usr/local/ ln -s mysql-5.6.19-linux-glibc2.5-i686 mysql3,修改mysql程序目录和数据目录的权限; chown -R root.mysql /usr/local/mysql/* chown -R mysql.mysql /mysql/data4,初始化mysql; cd /usr/local/mysql scripts/mysql_install_db --user=mysql --datadir=/mysql/data5,为mysql提供服务脚本; cp support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld6,为mysql提供配置文件; cp support-files/my-default.cnf /etc/my.cnf 如果有旧的配置文件,请先备份;7,修改配置文件:vim /etc/my.cnf basedir = /usr/local/mysql mysql工作目录 datadir = /mysql/data mysql数据目录 保存退出;8,修改系统PATH变量; vim /etc/profile.d/path.sh 写入:export PATH=$PATH:/usr/local/mysql/bin 保存退出; source /etc/profile9,将man文件档添加至man pages; vim /etc/man.config MANPATH /usr/local/mysql/man 保存退出;10,将mysql的lib目录添加至系统; vim /etc/ld.so.conf.d/mysql.conf 写入:/usr/local/mysql/lib 保存退出; ldconfig11,输出mysql的头文件; ln -s /usr/local/mysql/include /usr/include/mysql12,启动mysql; service mysqld start13,查看mysql是否正常监听端口; netstat -tlunp | grep 3306 MYSQL源码包安装安装所需组件 yum -y install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake1.安装cmake(最新的cmake-2.8.11.2)2.安装编译MySQL-5.6.12
说明:cmake指定编译选项的方式不同于make,其实现方式对比如下
./configure 对应的是 cmake .
./configure --help 对应的是 cmake . -LH 或者是 ccmake .
3.创建mysql的用户与组
4.创建mysql的数据目录(创建逻辑卷存放数据)[root@mysql ~]
# fdisk /dev/sda #创建一个新分区类型为8e
[root@mysql ~]
# partx -a /dev/sda #让内核重新读取一下分区
发现报错,以很清楚的看到缺少两个依赖包,我们用yum安装一下即可! yum install –y openssl openssl-devel ncurses ncurses-devel们再次编译一下,可能还会报同样的错误,这里是因为,我们在多次运行cmake有个文件我们需要删除,删除当前目录下CMakeCache.txt文件并重新编译,再次运行cmake命令就会正常!最后进行下面操作8.编译选项说明
指定安装文件的安装路径时常用的选项
编译过程中启用其他存储引擎时指令介绍编译过程中取消一些存储引擎指令介绍编译进过程中功能启用的指令介绍其他功能指令9.mysql服务脚本10.初始化mysql[root@mysql data]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/mydata/data --user=mysql #mysql初始化说明初始化时得,增加 --basedir选项11.修改mysql配置文件
[root@mysql mysql]# vim my.cnf
#增加如下内容
binlog-format=ROW
log-bin=master-bin.log
log-slave-updates=true
gtid-mode=on
enforce-gtid-consistency=true
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1
slave-parallel-workers=2
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1
server-id=1
report-port=3306
port=3306
datadir=/mydata/data
socket=/tmp/mysql.sock
report-host=master.magedu.com
12.启动mysql[root@mysql mysql]# service mysqld start[root@mysql mysql]# chkconfig mysqld on13.mysql命令添加到环境变量中14.输出mysql的man手册到man命令的查找路径15.输出mysql的库文件16.输出mysql的头文件到系统头文件好了到这里mysql的源码安装的配置过程全部完成.

17.测试
1).查看端口和登录mysql
[root@mysql mysql]# mysql
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
yum安装mysql5.61、删除系统自带的mysql rpm -qa|grep mysql yum remove mysql-libs2、安装mysql YUM源 wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm rpm -ivh mysql-community-release-el6-5.noarch.rpm3、安装mysql yum install mysql-server mysql-devel4、root密码设置 service mysqld stop mysqld_safe --skip-grant-tables & mysql -u root -p 回车直接进去,或者随便输入一个密码 use mysql; update user set password=PASSWORD("newpass")where user="root"; 更改密码为 newpassord flush privileges; 更新权限 quit 可以参考:/article/4356238.html 本文出自 “从心开始” 博客,请务必保留此出处http://hao360.blog.51cto.com/5820068/1430672
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: