前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql体系结(基础)

mysql体系结(基础)

原创
作者头像
萧晚歌
修改2021-12-13 20:03:43
5900
修改2021-12-13 20:03:43
举报
文章被收录于专栏:linux技术分享linux技术分享

mysql多种连接方式介绍

socket

前提必须创建和授权localhost用户,数据库启动才会生成socket文件

mysql启动的时候会自动生成一个套接字的文件,可以通过本地访问这个文件登录mysql

文件默认在/tmp/mysql.sock 可以在配置文件指定参数 socket=文件路径 来指定文件存放位置

代码语言:javascript
复制
mysql -uroot -p -S/tmp/mysql.sock #mysql 默认去/etc/找mysql.sock 用户也可以在配置文件中[mysql]端指定 socket=文件路径默认启用

如何确认用户是socket登录还是TCP/IP方式 show processlist; host列可以看到用户是什么方式登录

TCP/IP

前提是必须创建和授权远程网段登录用户

代码语言:sql
复制
mysql -utest -p123456 -h10.0.0.51 -P3306
-h指定主机
-P指定端口 单独指定没有意义 需要指定 -h主机

mysql基于ssl安全链接

查看安全链接功能是否开启

代码语言:sql
复制
show variables like '%ssl%';
have_openssl                        YES            
have_ssl                            YES   

mysql_ssl_rsa_setup 通过命令去生成

在数据目录下会有目录下生成以下.pem文件:

ca.pem #自签的CA证书,客户端连接也需要提供

client-cert.pem #客户端连接服务器端需要提供的证书文件

client-key.pem #客户端连接服务器端需要提供的私钥文件

private_key.pem #私钥/公钥对的私有成员

public_key.pem #私钥/公钥对的共有成员

server-cert.pem #服务器端证书文件

server-key.pem #服务器端私钥文件

测试链接,

代码语言:sql
复制
 mysql -ujialiye -p123 -h10.0.0.51 --ssl-cert=/data/mysql/data_3306/client-cert.pem --ssl-key=/data/mysql/data_3306/client-key.pem

mysql配置文件

mysql配置文件启动顺序

代码语言:javascript
复制
mysqld --help --verbose |grep my.cnf
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 
                      my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default

配置文件读取顺序 默认从/ect/my.cnf往后读取 有重复的配置文件相加关系 配置文件如果相同的话以最后一个配置为准

如果启动多实例可以添加 --defaults-file=配置文件路径 去单独指定启动配置文件

配置文件说明

代码语言:javascript
复制
[mysqld] 标签项 mysqld运行的时候会读取这个标签下的参数
[mysql] 标签项 mysql命令运行会读取标签下的参数
[mysqld_safe] 标签项 mysql安全启动是调用的参数
[sever] 标签项 会覆盖所有server端运行是的参数 mysqld, mysqld_safe 都会调用里面的参数
[client] 标签项 会覆盖所有客户端程序 mysql,mysqldump

mysql启动关闭流程

启动

代码语言:javascript
复制
在mysql目录下有个support-files目录 下面有个mysql.server文件 可以用这个文件
后面加 start stop restart 或者加入到systemd管理 脚本调用关系
mysql.server----> bin/mysqld_safe----->bin/mysqld
每一种方法都可以启动数据库
mysqld & 启动可以加参数 会把日志打印到屏幕上除非配置文件指定启动没有关闭功能 调试的时候会用
mysqld_safe & 启动可以加参数   记录日志文件,会自动监控mysqld程序的状态,出现问题会自动重启
systemd 启动 不可以加参数

关闭

代码语言:javascript
复制
进入数据库内部
shutdown
在外面用
mysqlamin -uroot -p123  -S/tmp/mysql.sock shutdown
系统管理
systemd stop 

ps在8.0更新可以在mysql中restart

mysql多实例

多实例说明 :

共享服务器资源,启动多个实例

一般用于分布式架构,选用比较常用的一种结构

其他的节点可能会用于别的副本

预算比较少的情况下可以以3台服务器做9个实例,3主6副本的

还可以在一台机器安装不同版本mysql用于模拟,升级,测试 调试等一系列功能

多版本安装说明

不同的配置文件指定

数据目录不同, 端口不同 socket文件不同

创建不同的数据目录 授权mysql用户权限

代码语言:javascript
复制
mkdir /data/mysql/data_3307

创建配置文件

代码语言:javascript
复制
vim /data/mysql/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/data_3307
socket=/tmp/mysql3307.sock
log_error=/data/mysql/data_3307/error.log
default_authentication_plugin=mysql_native_password
server_id=7
log_bin=/data/mysql/binlog_3307
port=3307

初始化

代码语言:javascript
复制
 mysqld --defaults-file=/data/mysql/my.cnf --initialize-insecure

启动数据库

代码语言:javascript
复制
mysqld_safe --defaults-file=/data/mysql/my.cnf

mysql工具日志说明

error log mysql启动到关闭整个生命周期,除了报错,还会提供警告,信息等一系列信息

genernal log 普通日志 会把整个数据库操作类的都会记录下来

bin log 二进制日志 1数据恢复 2做主从

slow log 慢日志 记录慢查询语句

error log 默认打开的

什么问题可以看错误日志呢 启动故障 , 主从故障 , 死锁 , 数据库夯住了,

默认在数据目录下有个hostname.err

控制参数

log_error=/错误日志位置 最好初始化之前设定好

日志文件最好和数据文件分开

如何查看全部关于日志的参数

show variables like '%log_error%';

show variables 可以查看全部参数

log_error_verbosity=3 #这个参数可以记录日志级别

如何在线调整 set global log_error_verbosity=3

binlog

作用数据恢复

复制

记录着mysql发生的变更类(增删改)类的操作都会记录binlog

8.0默认开始binlog 默认在数据目录下

server_id=一个大于0的数字 5.7之后强制

log_bin=路径/文件名前缀

slowlog 慢日志 记录数据库运行期间, 执行较慢的sql

配置参数 slow_query_log=on 是否开启慢日志

long_query_time= 基于时间去抓执行较慢的sql慢查询的时间 默认是秒

slow_query_log_file=路径 慢日志存放的路径

log_queries_not_using_indexe=1 记录不走索引的查询

log_throttle_queries_not_using_indexes=1000; 只记录就近的1000条不走索引的

慢日志也会记录锁信息

general_log 普通日志 文本格式 记录mysql运行期间所有操作语句

可以做问题诊断和调试

参数

general_log= 开关

general_log_file= 日志存放位置和名字

mysql升级流程

升级风险 升级完成起不来 , 应用连不上 ,数据库没问题,应用不匹配 要做很多测试

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档