官方网址

https://dev.mysql.com/downloads/mysql/

社区版本分析

MySQL5.5:默认存储引擎改为InnoDB,提高性能和可扩展性,增加半同步复制

MySQL5.6:提高InnoDB性能,支持延迟复制

MySQL5.7:提升性能,增强复制功能

https://www.jianshu.com/p/6f2cb7874abd MySQL 5.6 ,5.7 ,8.0    在安装部署的异同

DBA干点啥子?????

初级:各版本、各平台安装搭建、升级

中级:体系结构原理、基础管理(启动关闭、初始化配置文件管理、多实例管理、用户权限管理、基本SQL(增删改查))、

日志管理、备份与恢复、主从复制(构建、状态监控)

高级:高可用(MGR、InnoDB Cluster)、高性能(优化)

常规安装MySQL

1、检查版本和系统的适配度

2、环境介绍,将软件包传输到/root目录下,解压到/usr/local官方推荐安装路径

[root@localhost ~]# cat /etc/redhat-release

CentOS Linux release 7.4.1708 (Core)

[root@localhost ~]# uname -a

Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

[root@localhost ~]# ls -sh |grep mysql

376M mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz

[root@localhost ~]# mv /root/mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz /usr/local/

[root@localhost ~]# cd /usr/local/

[root@localhost local]# tar -xvf mysql-8.0.13-linux-glibc2.12-x86_us:m64.tar.xz

[root@localhost local]# mv mysql-8.0.13-linux-glibc2.12-x86_64 mysql

[root@localhost local]# du -h --max-depth=1 #解压之后文件大小为2G

2.0G./mysql

#MySQL底层是C和C++写的

3、新建用户,创建数据目录,修改属性,初始化MySQL

[root@localhost mysql]# tree -L 1 -d

├── bin #可执行文件目录

├── docs

├── include

├── lib

├── man

├── share

└── support-files

[root@localhost mysql]# mkdir data

#support-files中的mysql.server,datadir=/usr/local/mysql/data ,所以才默认安装到/usr/local

[root@localhost mysql]# groupadd mysql   #添加用户组mysql

[root@localhost mysql]# useradd mysql -g mysql    #添加用户mysql

[root@localhost local]# cd mysql

[root@localhost mysql]# chown -R mysql:mysql data #增加mysql用户,修改属性

[root@localhost mysql]# bin/mysqld --initialize --user=mysql --datadir /usr/local/mysql/data/

#数据库初始化,指定数据目录位置 9zyH:/491o5Z

2019-10-12T02:14:19.114262Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: R=lxprgpD0oj #临时密码,登录之后会让你修改密码

2019-10-12T02:14:20.505592Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) initializing of server has completed #初始化已经完成

#如果报错显示让你安装一个libaio包,yum一个就OK

#初始化数据库,指定用户和数据目录,返回一个临时密码,如果忘记初识密码,重新初始化,报错是因为你没有删除data目录里下的文件,初始化后data目录会从空目录增加很多目录

4、启动数据库

[root@localhost data]# cp ../support-files/mysql.server /etc/init.d/

[root@localhost data]# vim /etc/my.cnf

#系统默认数据库文件,marDB,我们不需要,删除就可以,否则就会报错

[root@localhost data]# /etc/init.d/mysql.server start #卧槽,居然真的报错

Starting MySQL.2019-10-12T02:24:24.836889Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.

ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).

[root@localhost data]# cp /etc/my.cnf{,.bak} #习惯性的备份一下,说不定以后会用到

[root@localhost data]# rm -fr /etc/my.cnf

[root@localhost data]# /etc/init.d/mysql.server start #重新启动,成功!!!

Starting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.. SUCCESS!

5、查看端口和进程,添加环境变量

[root@localhost data]# ps -ef |grep mysql

[root@localhost data]# netstat -lnatup|grep mysqld #端口查看一下 3306和33060  ,33060mysqlx的一个服务

tcp6 0 0 :::33060 :::* LISTEN 1808/mysqld

tcp6 0 0 :::3306 :::* LISTEN 1808/mysqld

[root@localhost bin]# cd

[root@localhost ~]# vi .bash_profile

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin

#把命令路径加入到PATH 。如果命令位置变了,重新添加,基础的基础

[root@localhost ~]# source .bash_profile #修改之后加载一下

6、测试,重置密码,显示数据库

5.7 修改密码:set password=password('mysql');

8.0修改密码:alter user user() identified by 'mysql';

[root@localhost ~]# mysqladmin -uroot -p password #命令交互式修改管理员密码

Enter password:

New password:

Confirm new password:

Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

[root@localhost ~]# mysql -u root -p

Enter password: #把初始化的那个密码写到这里就OK

mysql> show databases;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. #报错提示让你修改密码

mysql> alter user user() identified by 'mysql';   #突然觉得英语学得好的人,学SQL肯定快,因为SQL语句就是用英语的几个

Query OK, 0 rows affected (0.11 sec) #修改密码成功

mysql> show databases; #用一下,试一试

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

#修改配 置文件之前先把数据库关了

systemctl start/stop/restart/status mysqld

7、本地管理员用户密码忘记

版本8重置密码流程:在配置文件中添加免密码登录,登录系统,修改系统库中user表的密码数据,

删除配置文件的密码登录,重启服务,登录即可

实践

在【mysqld】模块添加:skip-grant-tables

或者/etc/init.d/mysql.server start --skip-grant-tables

#我感觉意思就是说启动的时候跳过权限这个表,就实现无密码登录了

mysql>mysql -u root -p #直接回车就可以进入数据库

mysql>use mysql

mysql> update user set authentication_string ='' where user ='root';

最后删除免密码登录就OK

mysql 常用参数:

-u 用户

-p 密码

-h IP

-P 端口

-S socket文件

-e 免交互执行命令

< 导入SQL脚本

非常规安装

1、将数据文件位置转移,添加/etc/my.cnf的模块

修改数据目录到其他目录,先把原来的/usr/local/mysql/data 整个目录移动到 /data ,最在/etc/my.cnf 中添加一个模块

[mysqld]

datadir=/data/mysql/data

[root@localhost init.d]# /etc/init.d/mysql.server start

Starting MySQL.. SUCCESS!

[root@localhost mysql]# ls #把原来的data目录搬到了外面/data

bin docs include lib LICENSE LICENSE.router man README README.router share support-files

也可以把整个mysql目录搬到其他地方,最后只需要在/etc/my.cnf中宣告basedir=/data/mysql/

另外也可以在初始化的时候指定这两个目录的位置,就不用搬来搬去了,

环境变量也需要添加

2、MySQL多实例

配置文件复制一份,添加一个新的端口3307

连接方式不同,需要指定sock文件 -S /tmp/mysql3307.sock

拷贝之后修改文件所属者和所属组

mysql> show variables like '%sock%';

+-----------------------------------------+------------------+

| Variable_name | Value |

+-----------------------------------------+------------------+

| mysqlx_socket | /tmp/mysqlx.sock |

| performance_schema_max_socket_classes | 10 |

| performance_schema_max_socket_instances | -1 |

| socket | /tmp/mysql.sock |

+-----------------------------------------+------------------+

[root@localhost mysql2]# cat /etc/my3307.cnf

[mysqld]

basedir=/data/mysql2

datadir=/data/mysql2/data

port=3307

socket=/tmp/mysql3307.sock

mysqlx_port=33070

mysqlx_socket=/tmp/mysqlx33070.sock

[root@localhost mysql2]# bin/mysqld --defaults-file=/etc/my3307.cnf --user=mysql & #后台启动该实例进程

2019-10-12T06:23:49.364951Z 0 [System] [MY-010116] [Server] /data/mysql2/bin/mysqld (mysqld 8.0.13) starting as process 16877

2019-10-12T06:23:50.692041Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/tmp/mysqlx33070.sock' bind-address: '::' port: 33070

3、查看端口和临时文件夹

[root@localhost ~]# netstat -lntup |grep mysql

tcp6 0 0 :::3307 :::* LISTEN 16877/bin/mysqld

tcp6 0 0 :::33070 :::* LISTEN    16877/bin/mysqld

tcp6 0 0 :::33060 :::* LISTEN 16821/mysqld

tcp6 0 0 :::3306 :::* LISTEN 16821/mysqld

[root@localhost ~]# ls /tmp/

ks-script-TlWukQ mysqlx.sock

mysql3307.sock mysqlx.sock.lock

mysql3307.sock.lock mysql.sock mysql.sock.lock

mysqlx33070.sock mysqlx33070.sock.lock

4、指定socket文件启动mysql实例

[root@localhost ~]# mysql -u root -S /tmp/mysql3307.sock -p

Enter password:

5、测试,添加数据库,查看3307实例的data目录

mysql> create database course;#创建数据库course

Query OK, 1 row affected (0.03 sec)

mysql> show databases; #另一个数据库对比,说明实例添加成功

[root@localhost ~]# ll /data/mysql2/data/ -t

#新建的数据库在该进程的数据目录下会有一个新的目录

drwxr-x---. 2 mysql mysql 6 Oct 12 14:29 course

6、错误日志,数据文件目录

mysql> show variables like '%log_error%';

[root@localhost ~]# tail -1 /data/mysql/data/localhost.localdomain.err

2019-10-12T06:16:59.715604Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/tmp/mysqlx.sock' bind-address: '::' port: 33060

可以修改错误日志文件目录位置在/etc/my.cnf

log_error=/data/mysql/data/abc.log

7、指定允许的连接 地址

bind-address(默认是*)

*代表接受所有来自IPV4、 IPV6主机网卡的TCP/IP连接

0.0.0.0代表接受所有来自IPV4主机网卡的TCP/IP的连接

指定的IP如127.0.0.1,代表只接受此地址请求的TCP/IP连接,只接受本地

8、参数

default-storage-engine(默认是InnoDB):指定MySQL的默认存储引擎

default- time -zone:指定默认时区,如果没有指定则和系统默认时区一致

9、关闭防火墙

[root@localhost mysql]# systemctl stop firewalld

[root@localhost mysql]# systemctl status firewalld

Active: inactive (dead) since Sun 2019-10-13 15:13:52 CST; 7s ago

mysql 8.0 集群_集群架构03·MySQL初识,mysql8.0环境安装,mysql多实例相关推荐

  1. Windows环境安装MySQL步骤

    Windows环境安装MySQL步骤 前言 1.下载安装包 2.安装 3.工具连接 前言 说明:如果电脑上已经有MySQL数据库,就不用安装了,不管是Windows还是Linux或者Docker的,不 ...

  2. 沙洋有几个微服务群_集群 分布式 微服务

    转自:https://blog.csdn.net/qq_37788067/article/details/79250623 概念: 集群是个物理形态,分布式是个工作方式. 1.分布式:一个业务分拆多个 ...

  3. centos7安装mysql8.0简书_【Linux实战03】CentOS 7 下 MySQL 8.0 的安装

    一.安装前准备 1.查看当前服务器的发行版本号 2.查看当前服务器的内核版本 3.查看当前服务器的操作系统位数 ----温馨提示---- 为什么先做如上三个操作呢? 多数同学,部署各类软件不成功的原因 ...

  4. MySQL如何生成idf文件_【IDF2010】释放三大特性 至强7500为MySQL量身定做

    我们曾经总结一般的数据库服务器在选型时的主要需求(详见:数据库服务器选型原则及实例解说),并探讨了如何选择Oralce数据库服务器(详见:x86渐热 Oracle数据库服务器选型指南).本期我们将从M ...

  5. mysql环境搭载后老出错_使用Docker在window10下搭建SWOFT开发环境,mysql连接错误

    使用Docker在window10下搭建SWOFT开发环境,mysql连接错误 { "code": 0, "error": "(Swoft\\Db\\ ...

  6. mysql-5.0.83删除_【实验】WindowsXP + MySQL5 + Apache2 + PHP5 + phpMyAdmin环境搭建

    [MySQL 5.0.83 安装]1.在目录E:\local中新建一个名为mysql的文件夹,作为mysql的安装路径2.到其官方站点下载 mysql-5.0.83-win32.zip官方下载地址:h ...

  7. 一条mysql语句是事务吗_没想到!我在简历上写了“精通MySQL”,阿里面试官跟我死磕后就给我发了高薪offer...

    事情是这样的 前段时间面试了阿里,大家也都清楚,如果你在简历上面写着你精通XX技术,那面试官就会跟你死磕到底. 我就是在自己的简历上写了精通MySQL,然后就开启了和阿里面试官的死磕之路,结果就是拿到 ...

  8. python列表的索引是从0开始的_为什么python中list的索引从0开始?

    java建立数组, int[] a = new int[3], 建立一个以为数组并将其初始化位3个位置的内存, a[1] = 3;java的索引从0开始,而C和python是从0开始的. 为什么pyt ...

  9. linux网站目录在哪_果核建站教程【二】环境安装与搭建第一个网站

    有问题加群,一起讨论,一起学习 群号:664592923 昨天大家都能理解,那么今天我们就要进入实战教程咯. 这节教程讲在本地搭建环境和安装程序. 1本地环境的搭建 之前有教程讲如何在Windows开 ...

最新文章

  1. 计算机rsnge指令,计算机二级office Excel 函数复习重点
  2. python多线程爬虫数据顺序_多线程爬取小说时如何保证章节的顺序
  3. 点击率预估又有新花样?
  4. spark如何防止内存溢出_spark开发十大原则
  5. 你和学霸的差距,不只是成绩
  6. 数据结构:(3)数据结构求解问题的过程
  7. Spring @Scheduled定时任务调度配置的详解
  8. python综合设计问题_Python 设计和历史的 27 个问题(2)
  9. [linux驱动]linux块设备学习笔记(二)
  10. Tomcat启动Maven项目异常:java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext
  11. 系统服务器地云盘上,系统服务器地云盘上
  12. dubbo+zookeper与webservice的简单对比
  13. Docker最全教程之使用Tencent Hub来完成CI(九)
  14. 前端开发必备之MDN文档
  15. iconfont字体图标的使用
  16. contrastive loss 详解
  17. 诺基亚、罗永浩,中国手机2014八大关键词
  18. HTTP网络劫持的原理与过程、网站被劫持怎么办?
  19. “互联网寒冬”来袭,软件测试人员该如何度过这次危机?
  20. 验证码研究入门必读(验证码是什么,有什么用,分类,设计,破解,未来发展)

热门文章

  1. Python线程、进程、进程池、协程
  2. 实现lua面向对象的private属性
  3. 大剑无锋之TCP和HTTP的区别【面试推荐】
  4. Win7系统中Cookie位置
  5. leetcode 763. Partition Labels | 763. 划分字母区间(双指针)
  6. 【MyBatis】MyBatis中,大于号、小于号的两种表达方式
  7. 【Eviews】第九周实验-二次/对数拟合、预测
  8. 看动画学算法之:排序-快速排序
  9. Linux运行脚本忽略警告,ShellCheck - 显示Shell脚本的警告和建议的工具
  10. Spring手动回滚事务