MySQL介绍和安装
2021/9/23 19:43:10
本文主要是介绍MySQL介绍和安装,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
MySQL介绍
基本概念
数据库(database):数据库是一个以某种有组织的方式存储的数据集合,是保存有组织的数据的容器。适合存储到数据库的数据:
- 重要性比较高的数据
- 关系较为复杂的数据
数据库管理系统(DBMS):数据库管理系统是管理数据库的软件,数据库通过DBMS创建和操纵容器。DBMS在行业中分为两个派系:
- RDBMS(Relational Database Management System):关系型数据库管理系统,比较适合于安全级别要求高的数据以及关系较复杂的数据,包括MySQL、Oracle、MsSQL(SQL Server)等
- NoSQL(Not only SQL):非关系型数据库管理系统,适合高性能存储数据,可配合RDBMS进行使用;也可针对大数据处理分析和分布式架构,包括:
键值(Key-Value):Redis、memcached
文档(document):mongodb
MySQL简介
企业版本选择(MySQL分支版本):
- Oracle:MySQL官方版(InnoDB存储引擎、MGR、InnoDB Cluster)
- Redhat:MariaDB(Xtradb、Zabbix(TokuDB引擎、MyRocks引擎)、Xtradb cluster)
- Percona:PerconaDB,建议使用它提供的工具percona toolkit,XBK(xtrabackup),PXC
MySQ行业主流版本, 版本选择建议要上新环境,一般选择官方主流版本5.6、5.7–GA(稳定发布版),6-12月的产品版本:
- MySQL 5.6:5.6.20、5.6.34、5.6.36、5.6.38、5.6.40
- MySQL 5.7:5.7.18、5.7.20、5.7.22
- MySQL 8.x
本次使用MySQL 5.7.20版本(Sep 13,2017)进行学习。
MySQL安装
主要提供三种格式的MySQL包的安装:
- 源码格式:source code,程序压写的码
- 二进制格式:binary code,由源码经过编译得到,机器跑的码
- RPM格式:分为binary rpm和source rpm
安装方式 | 包名举例 | 包名含义 | 介绍 |
---|---|---|---|
二进制包 | mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz | 软件名<版本>-<CPU架构>.tar.gz | 二进制包包含了已经过编译,可以马上运行的程序 |
源码包 | mysql-5.7.20.tar.gz | 软件名<版本>.tar.gz | 源代码包里面包括了程序原始的程序代码,需要在计算机上进行编译以后才可以产生可以运行程序,所以从源代码安装的时间会比较长。 |
RPM包 | MySQL-server-5.7.20-1.el6.x86_64.rpm | 软件件名<版本><CPU架构>.rpm | RPM是redhat系列发行版本所用的格式软件包,可使用rpm -ivh安装。yum安装其实就是自动判断rpm包的依赖,一次性把所有需要安装的rpm统一下载安装,其原理和一个个的安装rpm没有本质区别。 |
MySQL源码安装
-
官网下载source code源码包
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz
-
解压并重命名目录
tar xf mysql-boost-5.7.20.tar.gz mv mysql-boost-5.7.20 mysql
-
安装依赖包
yum -y install gcc gcc-c++ make cmake ncurses ncurses-devel perl boost boost-doc boost-devel
-
创建关键用户及目录
mkdir -p /usr/local/mysql mkdir -p /usr/local/mysql/data useradd mysql chown -R mysql.mysql /usr/local/*
-
cmake进行预编译
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/\ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_SYSTEMD=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./boost
-
编译安装
make && make install
MySQL二进制安装
-
官网下载MySQL 5.7.20 二进制包
[root@localhost app]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
-
解压并重命名目录
[root@localhost app]# tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz [root@localhost app]# mv mysql-5.7.20-linux-glibc2.12-x86_64 mysql [root@localhost app]# ls mysql [root@localhost app]# ll mysql/ total 36 drwxr-xr-x. 2 root root 4096 Sep 23 11:43 bin -rw-r--r--. 1 7161 31415 17987 Sep 13 2017 COPYING drwxr-xr-x. 2 root root 55 Sep 23 11:43 docs drwxr-xr-x. 3 root root 4096 Sep 23 11:43 include drwxr-xr-x. 5 root root 229 Sep 23 11:43 lib drwxr-xr-x. 4 root root 30 Sep 23 11:43 man -rw-r--r--. 1 7161 31415 2478 Sep 13 2017 README drwxr-xr-x. 28 root root 4096 Sep 23 11:43 share drwxr-xr-x. 2 root root 90 Sep 23 11:43 support-files
-
将bin目录添加到环境变量中
[root@localhost app]# vim /etc/profile export PATH=/app/mysql/bin:$PATH [root@localhost app]# source /etc/profile
-
创建mysql用户和组,并修改mysql目录权限
[root@localhost app]# useradd -M -s /sbin/nologin mysql [root@localhost app]# chown -R mysql.mysql /app/mysql [root@localhost app]# mkdir -p /data/mysql [root@localhost app]# chown -R mysql.mysql /data/mysql
-
初始化数据(建库)
一套完整的数据库管理系统的基本结构- 软件部分:/app/mysql
- 数据部分:系统相关数据(维持mysql数据库软件程序,正常运行的系统数据)、用户数据(与用户应用程序相关的数据)
方法一:初始化数据,初始化管理员的临时密码 [root@localhost app]# mysqld --initialize --user=mysql --basedir=/app/mysql --datadir=/data/mysql ... 2021-09-23T04:05:57.310710Z 1 [Note] A temporary password is generated for root@localhost: 1:hl_c2z1bS< 方法二:初始化数据,初始化管理员的密码为空 [root@localhost app]# mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/mysql --initialize:初始化数据 --user:数据库管理员 --basedir:数据库软件放置位置 --datadir:数据库数据放置位置 [root@localhost app]# cd /data/mysql/ [root@localhost mysql]# ls auto.cnf ib_buffer_pool ibdata1 ib_logfile0 ib_logfile1 mysql performance_schema sys
扩展:5.6初始化区别
/app/mysql/scripts/mysql_install_db --user=mysql --datadir=/app/mysql/data --basedir=/app/mysql
重要说明:5.7开始,MySQL加入全新的密码安全机制(加入insecure后关闭该机制)
- 初始化完成后,会生成临时密码(显示到屏幕,日志也有记录)
- 密码复杂度要求:长度超过12位,字符混合
- 密码过期时间180天
-
编辑MySQL配置文件/etc/my.cnf(应该默认为空,若有内容表示maraidb没有卸载干净)
[root@localhost ~]# vim /etc/my.cnf [mysqld] user=mysql basedir=/app/mysql datadir=/data/mysql server_id=6 port=3306 socket=/tmp/mysql.sock [mysql] socket=/tmp/mysql.sock prompt=3306 [\\d]>
-
配置启动脚本
[root@localhost mysql]# cd /app/mysql/support-files [root@localhost support-files]# ./mysql.server start Starting MySQL.Logging to '/data/mysql/localhost.localdomain.err'. . SUCCESS! 将启动脚本复制到/etc/init.d/下 [root@localhost support-files]# cp mysql.server /etc/init.d/mysqld 而后就可以通过service进行管理 [root@localhost ~]# service mysqld stop Shutting down MySQL.. SUCCESS!
-
使用systemd管理mysql
[root@localhost ~]# vim /etc/systemd/system/mysqld.service [Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=http://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=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf LimitNOFILE = 5000
注意:若mysqld处于启动状态先将其关闭,然后再使用systemd管理。
[root@localhost ~]# service mysqld stop Shutting down MySQL.. SUCCESS! [root@localhost ~]# systemctl start mysqld
-
安装后的简单管理
# 修改mysql root密码 [root@localhost ~]# mysqladmin -uroot -p password 123456 Enter password: mysqladmin: [Warning] Using a password on the command line interface can be insecure. Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety. # MySQL登录测试 [root@localhost ~]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g.
查看数据库中的用户密码等信息
5.6版本
select user,password,host from mysql.user;5.7版本
select user,authentication_string,host from mysql.user;3306 [(none)]>select user,authentication_string,host from mysql.user; +---------------+-------------------------------------------+-----------+ | user | authentication_string | host | +---------------+-------------------------------------------+-----------+ | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | localhost | +---------------+-------------------------------------------+-----------+ 3 rows in set (0.00 sec)
这篇关于MySQL介绍和安装的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南