MySQL介绍与编译安装

一,数据库简单的分为两种:
1,关系型数据库------>MySQL和Oracle
2, 非关系型数据库------>Memcached(埋木 库希特)和Redis
3,消息队列中间件
(1)什么叫做关系型数据库?
SQL数据库数据和数据之间是有关系的。通过关系将一系列数据都提出来。
(2)什么是非关系型数据库?
NoSQL数据库
Not onley SQL
4,市面上还有一种数据库,关系型的,叫做MariaDB,它和MySQL有什么关系呢?
MySQL数据库最早是开源的,当然现在也是开源的。但是MySQL已经被Oracle公司==>SUN,被他收购了。
那么MySQL一旦闭源,怎么办? 因此MySQL运维社区的人,为了防止SUN公司对MySQL进行闭源操作,他们自主在MySQL最后一个开源版本的基础上,开发出来了一个分支数据库,叫做MariaDB,其实它和MySQL几乎是一样的。


二,MySQL数据库初体验
数据库的基本概念
1,数据
描述事物的符号记录为数据,包括数字,文字,图形,图像,声音,档案记录等,以“记录”形式统一的格式进行储存。
2,表
将不同的记录组织在一起,就形成了“表”,是用于储存具体数据的。
3,数据库
表的集合,是储存数据的仓库,以一定的组织方式存储的互相有关的数据。
4,数据库管理系统(DBMS)
实现对数据库资源有效组织,管理和存取的系统软件。具有以下功能:数据库的建立和维护功能,数据定义功能,数据操纵功能,运行管理功能,通信功能。
5,数据库系统
是一个人-机系统,由硬件,操作系统,数据库,DBMS,应用软件和数据库用户组成。用户可以通过DBMS操作数据库,也可以通过应用程序操作数据库。


三,关系型数据库MySQL
1,关系型数据库不光是表内有关系而且表与表之间还有关系,表与表之间如果有相同的一个字段的数据,这个数据就叫做主键。两个表根据相同的主键做关联,就把两个表的数据关联到一起了。这就是关系型数据库。 还有一种表叫关系表意思就是两个表哪怕没有关系字段,我们靠第三个关系表把头两个表关系起来。、
2,MySQL的特点
性能卓越,服务稳定
开源,无版本限制,成本低
多线程,多用户
基于c/s(客户端/服务端)架构
安全可靠
3,B/S架构模式与C/S架构模式的区别?
B/S===>Web/Server 
C/S===>Client/Server 

(1)用户通过Web浏览器打开输入域名就能访问服务器server的方式叫做B/S,用户不需要安装任何东西。

(2)所谓客户端Client在用户的电脑里是需要下载并安装的这就是C/S.
如:网页打开了直接跳进的游戏,这都是小游戏这是B/S, 大的网络游戏都需要安装联网玩这就是C/S。 这就是两种架构。

四,MySQL需要编译安装。
现在开始编译安装MySQL
准备工作。
(1)MySQL有两版本:5.1和5.5 咱们需要安装5.5版本
所以先过滤一遍自己的系统里有没有rpm 方式安装的MySQL。(yum可以安装MySQL但是它只能安装5.1版本)
#rpm -qa | grep mysql
只要出现MySQL server(MySQL服务器)就卸载 因为只能安装一个。
#rpm -e mysql-server mysql-nodeps 用这个命令卸载


(2)yum安装支持插件
#mkdir -p /media/cdrom
#mount /dev/sr0 /media/cdrom 挂载光盘
#yum -y install gcc gcc-c++ make autoconf ( make 编译包 妹克) (autoconf(饿插根斯 自动化)自动生成makefile包(妹克fai欧))
#yum -y install ncurses-devel (ncurses-devel 亏sei斯 呆薄)


(3)安装cmake编译包
把cmake-2.8.6.tar.gz编译包文件放在root目录下
#tar xf cmake-2.8.6.tar.gz -C /usr/src
#cd /usr/src/cmake-2.8.6/
#./configure && gmake && gmake install

(4)cmake编译安装MySQL
把mysql-5.5.22.tar.gz编译包文件放在root目录下
#tar xf mysql-5.5.22.tar.gz -C /usr/src
#cd /usr/src/mysql-5.5.22/
#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all && make && make install

(5)创建程序用户
#useradd -M -s /sbin/nologin mysql (创建的程序用户就叫mysql)
useradd创建程序用户 sbin命令目录 nologin不能登录 login 登录或进入系统的意思
不用设置密码。

(6)进编译安装完的mysql看下
#cd /usr/local/mysql
#pwd 回车这就是刚创建的mysql当前的位置
#ls
data目录是数据目录
bin 是命令目录
support-files 里边提供了很多模板,如:启动脚本,配置文件。 support提供 files文档
scripts脚本的意思,

(7)以上是数据库位置,但是既然要读写数据就要看下它的权限。
[mysql]#cd ..
[local]#ll -d mysql/
它的属主属组是root, 我刚才创建了程序用户叫mysql的,把属主改成它 改成mysql程序用户, 要不然程序用户往里写不进数据,因为写数据都是程序用户来完成的。
#chown -R mysql:root /usr/local/mysql chown更改文件的属主属组命令

(8)创建修改my.cnf配置文件
#ls /usr/local/mysql/support-files/my-* 看看support-files这里都有什么东西
support-files里提供了5种模板,分别是:
my-huge.cnf 巨大数据量
my-innodb-heavy-4G.cnf innodb引擎
my-large.cnf 大数据量
my-medium.cnf 测试使用
my-small.cnf 小数据量
我们先用测试这个
#/bin/cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
为什么要用绝对路径呢? 因为万一下边有就强制覆盖过去就行了。

(9)现在有了模板以后在复制一份
#/bin/cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 这是启动脚本
#chmod +x /etc/init.d/mysqld 给mysqld启动脚本加权限,好让它绝对路径启动。
#chkconfig mysqld --add 加入开机启动
#chkconfig mysqld --list 看一下
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off 显示这个 这就有了 chkconfig就能控制了。

(10)软链接
#which mysql
#ln -s /usr/local/mysql/bin/* /usr/local/bin/
#which mysql 有了
这是为了让环境变量找到命令

(11)进行初始化数据库
什么叫做初始化数据库?
#cd /usr/local/mysql mysql目录下有个data目录这是数据目录放数据的
#cd data
#ls
mysql test 里边是这两个子目录 这两个目录里边现在什么都没有
MySQL数据库是怎么放数据的呢?
数据记录在数据表上,数据表以文件格式放在里边,但是得需要归类。
这两个子目录就是数据库里边的小库,这就是将文件归类的小库。这样我就可以查某个小库里的所有文件。小库名字对应里边的文件,

#/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
这就初始化完成了。
#ls 再看下里边目录就多了
刚编译安装必须要有这一步。

(12)启动MySQL数据库
#cd
#/etc/init.d/mysqld start 启动脚本
SUCCESS! 成功
#netstat -anpt | grep :3306 查看下端口
启动完毕

(13)登录MySQL数据库
#which mysql 用mysql命令直接登录或mysql -uroot -p
如果是mysql -h 是指定主机(IP地址)
mysql -p 是指定密码 没写就是没密码
mysql -P 是端口,不写默认就是3306
mysql -u 是指定用户,不写就是默认登录本地 如:#mysql -uroot -p 指定用户是root
ctrl+D 是退出MySQL数据库。

(14)设置MySQL数据库的登录密码
有个命令:
#whcih mysqladmin (mysql 阿得 min四声) MySQL设置密码命令
#mysqladmin -uroot password '123123' 针对root用户设置密码 123123

(15)库的本质就是子目录。

原文地址:https://www.cnblogs.com/changtianwei/p/10007360.html