集群架构03·MySQL初识,mysql8.0环境安装,mysql多实例
官方网址
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
集群架构03·MySQL初识,mysql8.0环境安装,mysql多实例的更多相关文章
- MySQL服务器的安装和配置,MySQL Workbench 8.0.12安装,MySQL的基本使用
一 MySQL服务器的安装和配置 二 MySQL Workbench 8.0.12安装 三 MySQL的基本使用 一MySQL服务器的安装和配置 MySQL是目前最为流行的开放源码的数据库,是完全网络 ...
- linux云计算集群架构学习笔记:workstation 12.0 按装Red Hat Enterprise Linux 7(64位)
安装RHEL7.2 步骤: 1.安装虚拟机,按以下截图安装即可 步骤2: Ret hat 7.2 操作系统安装 rhel7因为许可报错解决
- MySQL集群架构:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高性能-技术流ken
MHA简介 MHA可以自动化实现主服务器故障转移,这样就可以快速将从服务器晋级为主服务器(通常在10-30s),而不影响复制的一致性,不需要花钱买更多的新服务器,不会有性能损耗,容易安装,不必更改现有 ...
- 【MySQL大系】《Mysql集群架构》
原文地址(微信):[技术文章]<Mysql集群架构> 本文地址:http://www.cnblogs.com/aiweixiao/p/7258444.html 点击关注微信公众号 1.主要 ...
- 构建MHA实现MySQL高可用集群架构
一.MHA简介 MHA(Master HighAvailability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开 ...
- Mysql MHA高可用集群架构
** 记得之前发过一篇文章,名字叫<浅析MySQL高可用架构>,之后一直有很多小伙伴在公众号后台或其它渠道问我,何时有相关的深入配置管理文章出来,因此,民工哥,也将对前面的各类架构逐一进行 ...
- Galera Cluster——一种新型的高一致性MySQL集群架构
原文链接:https://www.sohu.com/a/147032902_505779,最近被分配定位mysql的问题,学习下. 1. 何谓Galera Cluster 何谓Galera Clust ...
- 二、ELKStack集群架构设计
一.ELKStack介绍与入门实践 二.Elasticsearch 集群架构图 服务器配置:Centos6.6 x86_64 CPU:1核心 MEM:2G (做实验,配置比较低一些) 注:这里配置el ...
- linux集群架构
Linux集群架构 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heart ...
随机推荐
- elk with docker-compose
version: '2' services: elasticsearch: image: docker.calix.local:18080/docker-elasticsearch:6.2.2-1 # ...
- mysql对两个字段进行自定义排序
Mysql order by 多字段排序 ') desc,ADD_DATE desc mysql单个字段降序排序: select * from table order by id desc; mysq ...
- SVG矢量绘图 path路径详解(贝塞尔曲线及平滑)
以二次贝塞尔曲线的公式为例: js函数: //p0.p1.p2三个点,其中p0为起点,p2为终点,p1为控制点 //它们的坐标用数组表示[x,y] //t的范围是0-1 function qBerzi ...
- final详解
final的含义? final:java中的关键字,意为“终态的”或者“无法改变的”.可用来修饰类.变量.方法. 变量(成员变量.静态变量.局部变量) 注意: 1.final变量即为常量,通常常量名大 ...
- Group by,并汇总求和
static void Main(string[] args) { bbb(); Console.ReadKey(); } public static List<Dto> toAdd() ...
- 017_STM32程序移植之_AS608指纹模块
STM32程序移植之AS608指纹模块 BUG说明: 硬件接线图如图所示 STM32引脚 指纹模块引脚 功能 3.3V 3.3V PA3 Tx PA2 Rx GND GND PA1 WAK 3.3V ...
- 015_STM32程序移植之_NRF24L01模块
STM32程序移植之NRF24L01模块 引脚接线图如下所示 STM32引脚 NRF24L01引脚 功能 GND GND 3.3V 3.3V PB8 CE PB9 CSN PB13 SCK PB15 ...
- parents()和parent()
$("").parent().parent() //父元素的父元素 $("").parents("tr") // 祖先元素 找到tr
- Noip2012 提高组 Day1 T1 Vigenère 密码
题目描述 16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法――Vigenère 密 码.Vigenère 密码的加密解密算法简单易用,且破译难度比较高,曾在美国南 ...
- P1594 护卫队
题目描述 护卫车队在一条单行的街道前排成一队,前面河上是一座单行的桥.因为街道是一条单行道,所以任何车辆都不能超车.桥能承受一个给定的最大承载量.为了控制桥上的交通,桥两边各站一个指挥员.护卫车队被分 ...