- 1、MySQL介绍
- 1.1、 MySQL一般特制完整的MySQLRDBMS,是一个开源的关系型数据库管理系统(Relational Database Management
System),现在属于Oracle公司。随着MySQL功能的不断完善,性能不断提高,又有开源免费的优势,越来越多的企业选择使用MySQL,而放弃商用收费的Oracle。
2、MySQL的结构
- 2.1、逻辑结构
MySQL采用的是客户/服务器体系结构,因此实际使用时,有两个程序:
- 一个是MySQL服务器程序,指的是mysqlId程序,运行在数据库服务器上,负责在网络上监听并处理来自客户端的服务请求根据这些请求去访问数据库的内容,再把有关信息回传给客户;
- 另一个程序是MySQL客户端程序,负责连接到数据库服务器,并通过发出命令来告知服务器它想要的操作。
从上面面简单的逻辑图中可以看出,MySQL内部大致分为三层:
- 最上层是大部分基于网络的C/S服务都有的部分,比如连接处理、授权认证、安全等;
- 第二层包括MySQL的很多核心服务功能,包括查询解析、分析、优化、缓存以及所有的内置函数(例如,日期、时间、数学和加密函数),所有的跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。
- 第三层包含了存储引擎,存储引擎负责MySQL中欧数据的存储和提取,是数据库中非常重要非常核心的部分,也是MySQL区别与其他数据库的一个重要特性。
不同的存储引擎有个字的特点,MySQL支持插入式的存储引擎,可以根据实际情况
,选择最合适的存储引擎。不过目前对于绝大部分应用来说,MySQL默认的存储引
擎InnoDB应该就是其最佳选择。我觉得刚开始学习的时候介绍很多不常用甚至不会用到的存储引擎虽然可能会横向比较,让开发人员更了解每个存储引擎的特性,但是这样对开发人员造成的困扰更大,还不如专心学习一种用途最广泛的存储引擎,屏蔽其他干扰,学到一定深度后再了解其他存储引擎的不同点。
- 2.2、体系结构
具体查看MySQL在物理上的体系结构,从上到下依次是:
- 连接池组件
- 管理服务和工具组件、SQL接口组件、查询分析器组件、优化器组件、缓冲组件
- 插件式存储引擎
- 物理文件
3、数据库和实例的区别
区别区分:
数据库指物理上的存储文件,实例是用来操作数据库文件的。在MySQL数据库中,实例与数据库通常是一一对应的,这时两个词可以互换,但在集群情况下,可能存在一个数据库被对个数据实例使用的情况.
MySQL是单进程多线程架构的数据库,实例在系统上的表现就是一个进程。
- 下面进行MySQL的源码安装
- 安装包链接:链接:https://pan.baidu.com/s/1GSftYPscvrxtL8BaI1dBmA 提取码:lmhi
服务 | IP |
---|---|
mysql | 192.168.20.30 |
[root@lpj3 ~]# yum -y install bison cmake ncurses-devel openssl-devel perl-Data-Dumper
[root@lpj3 ~]# tar -zxf mysql-5.6.46.tar.gz
[root@lpj3 ~]# cd mysql-5.6.46/
[root@lpj3 mysql-5.6.46]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
[root@lpj3 mysql-5.6.46]# make -j8 && make install
- 参数释义
- –DCMAKE_INSTALL_PREFIX 安装路径
-DSYSCONFDIR 指定mysql配置文件目录
-DDEFAULT_CHARSET 设置mysql默认字符集
-DDEFAULT_COLLATION 默认编码格式
-DWITH_EXTRA_CHARSETS 指定mysql可用的其他字符集- make&& make install的意思 /configure配置环境 make是编译的意思。就是把源码包编译成二进制可执行文件,make install 就是安装的意思。 make&& make
install的意思是:
make与makeinstall是两个命令,在你./configuration生成了Makefile之后执行编译安装;
与&&一起的还有||,不过意思不一样,&&是与,||是或; make &&
makeinstall的意思就是执行make如果没有发生错误就执行make install- make -j 命令 用make -j带一个参数,可以把项目在进行并行编译,比如在一台双核的机器上,完全可以用make -j4,让make最多允许4个编译命令同时执行,这样可以更有效的利用CPU资源。在多核CPU上,适当的进行并行编译还是可以明显提高编译速度的。但并行的任务不宜太多,一般是以CPU的核心数目的两倍为宜。
make -j4 && make install 四个个CPU编译
make -j8 && make install 八个个CPU编译
[root@lpj3 mysql-5.6.46]# ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib
[root@lpj3 mysql-5.6.46]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
[root@lpj3 mysql-5.6.46]# useradd -M -s /sbin/nologin mysql
[root@lpj3 mysql-5.6.46]# chown -R mysql:mysql /usr/local/mysql/
[root@lpj3 mysql-5.6.46]# cd support-files/
[root@lpj3 support-files]# cp my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? yes
[root@lpj3 support-files]# cp mysql.server /etc/init.d/mysqld
更改配置文件
[root@lpj3 support-files]# vim /etc/init.d/mysqld
46 basedir=/usr/local/mysql ##MySQL安装路径
47 datadir=/usr/local/mysql/data ## 数据存放目录
[root@lpj3 support-files]# chmod +x /etc/init.d/mysqld
初始化数据库
[root@lpj3 support-files]# /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
启动并设置MySQL登录密码
[root@lpj3 support-files]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/usr/local/mysql/data/lpj3.err'.
SUCCESS!
[root@lpj3 support-files]# netstat -anput | grep LISTEN | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 22795/mysqld
[root@lpj3 support-files]# mysqladmin -uroot password 123456
Warning: Using a password on the command line interface can be insecure.
[root@lpj3 support-files]# mysql -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.46 Source distribution
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>