MySQL学习【第01篇】MySQL介绍及安装

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_44558760/article/details/88771362

一、基础部分

1、什么是数据?(Data)

数据:描述事务的符号记录,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机。

在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如:

1   hualong   man   24   淮南   运维

单纯的一条记录并没有任何意义,如果我们按逗号作为分隔,依次定义各个字段的意思:

ID   NAME      SEX    AGE    ADDRESS    MAJOR     #字段
1    hualong   man    24     淮南        运维      #记录

2、什么是数据库?(DataBase,简称DB)

数据库:顾名思义就是存放数据的仓库,只不过这个仓库是在计算机存储设备上。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种 用户共享

3、什么是数据库管理系统?(DataBase Management System 简称DBMS)

在了解了Data与DB的概念后,如何科学地组织和存储数据,如何高效获取和维护数据成了关键这就用到了一个系统软件;

数据库管理系统如:MySQL、Oracle、SQLite、Access、MSSQL(SQLserver)

Mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,现在是甲骨文公司的产品。

Oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高,也是甲骨文公司的产品。

Sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等。

数据库说白了就是文件夹
数据库管理系统就是一个软件
数据库服务器:就是对外专门提供数据的一个机器

4、数据库类型

关系型数据库 RDBMS

强大的查询功能,二级索引,数据的强一致性

典型代表产品:MySQL,Oracle,Mariadb,MS(SQLserver)

非关系型数据库 NoSQL

灵活性,可扩展,性能,支持分布式

典型代表产品:Redis,memcache,MongoDB,elasticsearch

5、MySQL的相关概念介绍

MySQL 为关系型数据库(Relational Database Management System),这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成, 如图所示的一个表格:

  • 表头(header): 每一列的名称;
  • 列(row): 具有相同数据类型的数据的集合;
  • 行(col): 每一行用来描述某个人/物的具体信息;
  • 值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
  • 键(key): 表中用来识别某个特定的人\物的方法, 键的值在当前列中具有唯一性。

6、数据库服务器,数据库管理系统,表与记录的关系(重点理解)

表:student,scholl,class_list(即文件)

数据库:lzsh_info(即文件夹)

数据库管理系统:如mysql(是一个软件)

数据库服务器:一台计算机(对内存要求比较高)

总结:

数据库服务器--->运行--->数据库管理软件

数据库管理软件--->管理--->数据库

数据库--->组织--->表,即文件夹--->组织--->文件

表---存放--->多条记录,即文件--->存放--->多行内容

7、MySQL版本选择的潜规则:

5.6:GA 6-12个月 小版本是偶数版

5.7:GA 6-12个月 小版本是偶数版 选择5.7.17版本以上的 (MGR:MySQL自带的高可用功能)

下载路径:http://dev.mysql.com/downloads/mysql/

二、MySQL安装

企业中选择的安装方式

中小型企业:以上方式都可以,运维偏向编译,dba偏向二进制 运维也偏向二进制

大型企业:可以选择: 先编译然后定制rpm包,制作yum仓库,然后yum安装

1、 rpm、yum安装

安装方便、安装速度快,无法定制

2、编译安装

可定制,安装慢

解压(tar)

生成(./configure)cmake

编译(make)

安装(make install)

5.5版本之前:tar ./configure make make install

5.5版本之后:cmake gmake

1)下载epel源
[root@db01 ~]# wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
	
2)安装依赖
[root@db01 ~]# yum install -y ncurses-devel libaio-devel autoconf cmake gcc gcc-c++ glibc

3)解压MySQL源码包
[root@db01 ~]# tar xf mysql-5.6.40.tar.gz

4)进入源码包目录
[root@db01 ~]# cd mysql-5.6.40

5)创建目录
[root@db01 ~]# mkdir /application

6)生成编译文件
[root@db01 mysql-5.6.40]# cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.40 \
-DMYSQL_DATADIR=/application/mysql-5.6.40/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.40/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0


#注释:

#程序存放位置
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.40 \
#数据存放位置
-DMYSQL_DATADIR=/application/mysql-5.6.40/data \
#socket文件存放位置
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.40/tmp/mysql.sock \
#使用utf8字符集
-DDEFAULT_CHARSET=utf8 \
#校验规则
-DDEFAULT_COLLATION=utf8_general_ci \
#使用其他额外的字符集
-DWITH_EXTRA_CHARSETS=all \
#支持的存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#禁用的存储引擎
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
#启用zlib库支持(zib、gzib相关)
-DWITH_ZLIB=bundled \
#启用SSL库支持(安全套接层)
-DWITH_SSL=bundled \
#启用本地数据导入支持
-DENABLED_LOCAL_INFILE=1 \
#编译嵌入式服务器支持
-DWITH_EMBEDDED_SERVER=1 \
# mysql5.6支持了google的c++mock框架了,允许下载,否则会安装报错。
-DENABLE_DOWNLOADS=1 \
#禁用debug(默认为禁用)
-DWITH_DEBUG=0


7)编译
[root@db01 mysql-5.6.40]# make

8)安装
[root@db01 mysql-5.6.40]# make install

9)创建mysql用户
[root@db01 mysql-5.6.40]# useradd mysql -s /sbin/nologin -M

10)做软链接
[root@db01 mysql-5.6.40]# ln -s /application/mysql-5.6.40 /application/mysql

11)进入其他文件目录
[root@db01 mysql-5.6.40]# cd /application/mysql/support-files

12)拷贝MySQL配置文件
[root@db01 support-files]# cp my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y

13)拷贝启动脚本
[root@db01 support-files]# cp mysql.server /etc/init.d/mysqld

14)进入初始化目录
[root@db01 support-files]# cd /application/mysql/scripts

15)初始化MySQL
[root@db01 scripts]# ./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data

16)创建socket文件所在目录
[root@db01 scripts]# mkdir /application/mysql-5.6.40/tmp

17)授权MySQL服务目录
[root@db01 scripts]# chown -R mysql.mysql /application/mysql*

18)添加环境变量
[root@db01 scripts]# vim /etc/profile.d/mysql.sh
export PATH="/application/mysql/bin:$PATH"

19)加载环境变量
[root@db01 scripts]# source /etc/profile

20)启动MySQL
[root@db01 scripts]# /etc/init.d/mysqld start

3、二进制安装

不需要安装,解压即可使用,不能定制功能

1)解压二进制包
[root@db02 ~]# tar xf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz 

2)创建MySQL安装目录
[root@db02 ~]# mkdir /application

3)移动MySQL程序到安装目录下
[root@db02 ~]# mv mysql-5.6.40-linux-glibc2.12-x86_64 /application/mysql-5.6.40

4)做软链接
[root@db02 ~]# ln -s /application/mysql-5.6.40 /application/mysql

5)进入其他文件目录
[root@db02 ~]# cd /application/mysql/support-files

6)拷贝配置文件
[root@db02 support-files]# cp my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y

7)拷贝启动脚本
[root@db02 support-files]# cp mysql.server /etc/init.d/mysqld

8)进入初始化目录
[root@db02 support-files]# cd ../scripts/

9)创建mysql用户
[root@db02 scripts]# useradd mysql -s /sbin/nologin -M

10)安装初始化依赖(依据实际情况安装)
[root@db02 scripts]# yum install -y autoconf libaio-devel

11)初始化
[root@db02 scripts]# ./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data

12)更改默认目录
[root@db02 scripts]# sed -i 's#/usr/local#/application#g' /etc/init.d/mysqld /application/mysql/bin/mysqld_safe

13)启动MySQL
[root@db02 scripts]# /etc/init.d/mysqld start

14)添加环境变量并重启(赋予命令所在路径)
[root@db02 scripts]# vim /etc/profile.d/mysql.sh
export PATH="/application/mysql/bin:$PATH"
[root@db02 scripts]# source /etc/profile.d/mysql.sh 

15)给MySQL的root用户设置密码
[root@db02 scripts]# mysqladmin -uroot -p password '123'

连接MySQL
[root@db01 ~]# mysql -uroot -p123

查看MySQL中所有用户
mysql> select user,host from mysql.user;
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1       |
|      | db04      |
| root | db04      |
|      | localhost |
| root | localhost |
+------+-----------+
6 rows in set (0.00 sec)

删除用户
mysql> drop user root@'db01';
mysql> drop user root@'::1';
mysql> drop user ''@'db01';
mysql> drop user ''@'localhost';
mysql> drop user root@'localhost';
mysql> drop user root@'127.0.0.1';

4、systemd管理mysql启动

1、编译安装配置(文件需要自己创建)
[root@db01 ~]# cat /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000

2、二进制编译配置
1)添加配置文件
[root@db02 ~]# cat /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000

2)增加配置文件
[root@db02 ~]# vim /etc/my.cnf
...
 17 # These are commonly set, remove the # and set as required.
 18 basedir = /application/mysql
 19 datadir = /application/mysql/data
 20 # basedir = .....
 21 # datadir = .....
 22 # port = .....
 23 # server_id = .....
 24 # socket = .....
...

安装扩展:可以采用先编译,然后定制rpm包,制作yum仓库,然后yum安装;

优点:简单,速度快,可定制;

缺点:比较复杂,制作时间极长。

猜你喜欢

转载自blog.csdn.net/weixin_44558760/article/details/88771362
今日推荐