MySQL数据库
  DcpJeOZ6VzTX 2023年11月02日 55 0

什么是数据

数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始 素材。 数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字 数据。 在计算机系统中,数据以二进制信息单元0,1的形式表示。 数据的定义: 数据是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关 系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。*

什么是数据库管理系统

DBMS(Database Management System)针对数据,库,表的增删改查

数据库管理系统的种类

关系型数据库(RDBMS Relational Database Management System): \- MySQL \- MSSQL(SQLserver)windows \- Oracle \- PosgreSQL(PSQL、PG)

非关系型数据库(NoSQL): \- MongoDB 文档型数据库 Document \- Redis 键值对数据库 key-value \- Elasticsearch 搜索引擎数据库 search Engine \- ETCD 键值对数据库 key-value

时序数据库:TSDB(Time Series Database)(是非关系型数据库) \- InfluxDB \- Prometheus

MySQL安装

安装方式

1.yum安装
2.源码安装
3.二进制安装

# MySQL版本
5.5 5.6 5.7 8.0

## 官网:https://www.mysql.com/

## 版本选择(潜规则)
最好使用5.6和5.7版本
5.6:GA6-12个月,小版本号为偶数版(例:5.6.50)

5.7:GA6-12个月,小版本号为偶数版,版本要高于5.7.20(MGR自带高可用功能)

MySQL数据库_MySQL安装

下翻,找到社区下载


点进去,选择下载归档

MySQL数据库_二进制安装MySQL_02

选择社区下载

MySQL数据库_源码安装MySQL_03

MySQL数据库_MySQL的使用_04

源码安装MySQL5.6

`db01`
# 先安装依赖(生成需要)
[root@db01]# yum install -y cmake openssl-devel ncurses-devel

# 下载MySQL
[root@db01]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.50-linux-glibc2.12-x86_64.tar.gz

# 解压
[root@db01]# tar xf mysql-5.6.50.tar.gz

# 生成
[root@db01 mysql-5.6.50]# 
cmake . -DCMAKE_INSTALL_PREFIX=/app/mysql-5.6.50 \
-DMYSQL_DATADIR=/app/mysql-5.6.50/data \
-DMYSQL_UNIX_ADDR=/app/mysql-5.6.50/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=system \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0

··············解析·············
#程序存放位置(BASEDIR程序存放目录)
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/data \ (/app/mysql-5.6.50可以去/etc/init.d/mysqld改成本地,或编译时直接写成本地/usr/local/mysql或者直接编辑/etc/my.cnf文件就行)
#数据存放位置DATADIR 
-DMYSQL_DATADIR=/usr/local/mysql/data \
#socket文件存放位置
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ (换成本地之后这里就不需要在加创建的socket文件存放目录路径)
#使用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
······························

# 编译和安装
[root@db01 mysql-5.6.50]# make && make install

编译安装完之后会自动创建一个/app目录
[root@db01 mysql-5.6.50]# ll /app/mysql-5.6.50/

# 做软连接
[root@db01 ~]# ln -s /app/mysql-5.6.50 /app/mysql

# 创建MySQL用户
[root@db01 ~]# useradd mysql -s /sbin/nologin -M

# 安装依赖(初始化需要)
[root@db03]# yum install -y autoconf

# 进入初始化脚本目录
[root@db01 ~]# cd /app/mysql/scripts/
········里面有一个mysql_install_db可执行文件······
[root@db01 scripts]# ll
total 36
-rwxr-xr-x 1 mysql mysql 34977 Jul 18 12:38 mysql_install_db

# 初始化需要指定用户、程序安装目录、数据目录
./mysql_install_db --user=mysql --basedir=/app/mysql --datadir=/app/mysql/data

············初始化成功后···········································
[root@db01 ~]# ll /app/mysql/data/
total 110624
-rw-rw---- 1 mysql mysql 12582912 Jul 18 15:39 ibdata1
-rw-rw---- 1 mysql mysql 50331648 Jul 18 15:39 ib_logfile0
-rw-rw---- 1 mysql mysql 50331648 Jul 18 14:51 ib_logfile1
drwx------ 2 mysql mysql     4096 Jul 18 14:51 mysql
drwx------ 2 mysql mysql     4096 Jul 18 14:51 performance_schema
drwxr-xr-x 2 mysql mysql       20 Jul 18 14:42 test
·································································

# 拷贝启动脚本
cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld

·············#这里最好直接编辑文件,5.7里就没有my-default.cnf这个文件#··············
# 拷贝MySQL配置文件
cp /app/mysql/support-files/my-default.cnf /etc/my.cnf

vim /etc/my.cnf
[mysqld]
basedir=/app/mysql
datadir=/app/mysql/data

# 源码安装创建socket文件存放目录
mkdir /app/mysql-5.6.50/tmp

# 源码安装授权(源文件和软连接都授权)
chown -R mysql.mysql /app/mysql*

# 启动数据库
/etc/init.d/mysqld start
Starting MySQL.. SUCCESS!
··············································

# 添加环境变量(添加完环境变量可以直接用mysql进入数据库,不加要/app/mysql/bin/mysql)
vim /etc/profile.d/mysql56.sh
  PATH="/app/mysql/bin:$PATH"
或 
echo 'PATH="/app/mysql/bin:$PATH"' > /etc/profile.d/mysql56.sh

# 生效环境变量
source /etc/profile

二进制安装MySQL5.6

# 安装依赖
[root@db02 ~]# yum install -y libaio-devel

# 下载MySQL

# 解压
[root@db02 ~]# tar xf mysql-5.6.50-linux-glibc2.12-x86_64.tar.gz

# 创建app目录
[root@db02 ~]# mkdir /app

# 移动目录
[root@db02 ~]# mv /root/mysql-5.6.50-linux-glibc2.12-x86_64 /app/mysql-5.6.50

# 做软连接
[root@db02 ~]# ln -s /app/mysql-5.6.50 /app/mysql

# 创建MySQL用户
[root@db02 ~]# useradd mysql -s /sbin/nologin -M

# 进入初始化脚本目录
[root@db02 ~]# cd /app/mysql/scripts/
········里面有一个mysql_install_db可执行文件······
[root@db02 scripts]# ll
total 36
-rwxr-xr-x 1 mysql mysql 34977 Jul 18 12:38 mysql_install_db

···········#执行前需要安装依赖···········
yum install -y autoconf
·····································

# 初始化需要指定用户、程序安装目录、数据目录
./mysql_install_db --user=mysql --basedir=/app/mysql --datadir=/app/mysql/data

············初始化成功后···········································
[root@db02 ~]# ll /app/mysql/data/
total 110624
-rw-rw---- 1 mysql mysql 12582912 Jul 18 15:39 ibdata1
-rw-rw---- 1 mysql mysql 50331648 Jul 18 15:39 ib_logfile0
-rw-rw---- 1 mysql mysql 50331648 Jul 18 14:51 ib_logfile1
drwx------ 2 mysql mysql     4096 Jul 18 14:51 mysql
drwx------ 2 mysql mysql     4096 Jul 18 14:51 performance_schema
drwxr-xr-x 2 mysql mysql       20 Jul 18 14:42 test
·································································

# 拷贝启动脚本
cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld

·············#这里最好直接编辑文件,5.7里就没有my-default.cnf这个文件#··············
# 拷贝MySQL配置文件
cp /app/mysql/support-files/my-default.cnf /etc/my.cnf

vim /etc/my.cnf
[mysqld]
basedir=/app/mysql
datadir=/app/mysql/data
·············································································

# 二进制安装可以启动
##启动数据库
/etc/init.d/mysqld start
Starting MySQL.. SUCCESS!

# 添加环境变量(添加完环境变量可以直接用mysql进入数据库,不加要/app/mysql/bin/mysql)
vim /etc/profile.d/mysql56.sh
  PATH="/app/mysql/bin:$PATH"
或 
echo 'PATH="/app/mysql/bin:$PATH"' > /etc/profile.d/mysql56.sh

# 生效环境变量
source /etc/profile

如果出现这个报错

MySQL数据库_二进制安装MySQL_05

去看日志

tail -100f /app/mysql-5.6.50/data/db01.err

然后往上翻找error

MySQL数据库_二进制安装MySQL_06

tail -f (-f和-F用法一样,但-f不能指定不存在的文件)

tail -F 可以指定不存在的文件(如:在启动时日志还没有完全打入这个文件)

yum安装MySQL

# 1.下载yum源的rpm包
wget https://dev.mysql.com/get/mysql80-community-release-el7-8.noarch.rpm
# 2.直接安装yum源的rpm包
[root@db03 ~]# rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-
8.noarch.rpm
# 3.创建MySQL仓库
vim /etc/yum.repos.d/mysql.repo
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

# 安装:
yum install -y mysql-server

安装5.7版本

源码安装5.7

# 先安装依赖
yum install -y cmake openssl-devel ncurses-devel

# 下载MySQL

# 解压
tar xf mysql-boost-5.7.42.tar.gz

#生成时:(先cd mysql-5.7.42)
cmake . -DCMAKE_INSTALL_PREFIX=/app/mysql-5.7.42 \
-DMYSQL_DATADIR=/app/mysql-5.7.42/data \
-DMYSQL_UNIX_ADDR=/app/mysql-5.7.42/tmp/mysql.sock \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost_1_59_0 \
-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=system \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0 

# 编译和安装
[root@db03 mysql-5.7.42]# make && make install

# 做软连接
ln -s /app/mysql-5.7.42/ /app/mysql

# 创建MySQL用户
useradd mysql -s /sbin/nologin -M

# 进入初始化脚本目录
cd /app/mysql/bin/

# 安装依赖(初始化需要)
[root@db03]# yum install -y autoconf

## 初始化时:
./mysqld --initialize --user=mysql --basedir=/app/mysql --datadir=/app/mysql/data

不带密码(推荐使用)
./mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/app/mysql/data

# 拷贝启动脚本
cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld

# 编辑MySQL配置文件
vim /etc/my.cnf
[mysqld]
basedir=/app/mysql
datadir=/app/mysql/data

# 源码安装时创建socket文件存放目录
mkdir /app/mysql-5.7.42/tmp

# 源码安装授权(源文件和软连接都授权)
chown -R mysql.mysql /app/mysql*

# 启动数据库
[root@db03 ~]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!

二进制安装5.7

# 安装依赖
yum install -y libaio-devel autoconf

# 下载MySQL

# 解压
tar xf mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz

# 创建app目录
mkdir /app

# 移动目录
mv /root/mysql-5.7.42-linux-glibc2.12-x86_64 /app/mysql-5.7.42

# 做软连接
ln -s /app/mysql-5.7.42/ /app/mysql

# 创建MySQL用户
useradd mysql -s /sbin/nologin -M


# 进入初始化脚本目录
cd /app/mysql/bin/

# 初始化
./mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/app/mysql/data

# 拷贝启动脚本
cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld

# 编辑MySQL配置文件(删除多余的)
vim /etc/my.cnf
[mysqld]
basedir=/app/mysql
datadir=/app/mysql/data

# 启动数据库
[root@db04 ~]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS! 

# 进入数据库
[root@db04 ~]# /app/mysql/bin/mysql
-#环境变量
添加环境变量后只需要用mysql就行
echo 'PATH="/app/mysql/bin:$PATH"' > /etc/profile.d/mysql57.sh
生效环境变量source /etc/profile



# 启动MySQL用systemd脚本
[root@db02]# cd /usr/lib/systemd/system
[root@db02 system]# vim /usr/lib/systemd/system/mysqld.service

[Unit]
Description=mysqld

[Service]
#Type=notify
ExecStart=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

##先 systemctl daemon reload(5.6二进制需要,其他直接启动)
##再 systemctl start mysqld

##加入开机自启 systemctl enable mysqld

MySQL数据库的使用

# 进入数据库
1) /app/mysql/bin/mysql
2)mysql(要添加环境变量才能用)
3)mysql -uroot -hdb01(使用某个用户登录)

# 查看库
show databases;
	##进入库
	use mysql
	##查看库里的表
	show tables;
	##查看user表
	select * from user;
	##查看表结构
	desc user;

# 查看用户
select user,host from mysql.user;

# 给数据库用户设置密码
mysaladmin -uroot password'123'

# 删除某个用户
drop user 'root'@'::1';

# 添加用户
create user 'bbb'@'localhost';
# 创建用户
CREATE USER 'sonar_user' IDENTIFIED BY '123';

# 删除所有用户(可不能瞎搞)
truncate mysql.user;

# 查看表
desc mysql.user;
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论