Linux下部署Mysql

概述

本文介绍在Linux下部署Mysql的详细步骤,以供参考。

环境说明

OS Version:CentOS Linux release 8.1.1911 (此为发行版本)
OS Version:CentOS Linux release 8.2.2004 (此为发行版本)

Linux下查看系统版本命令
查看系统发行版本:cat /etc/redhat-release
查看系统内核版本:uname -a

准备内容

Linux文件命令行工具Xshell 4

下载地址
链接:https://pan.baidu.com/s/1cqrgxkJqLK_EOEccMnPxDA
(https://pan.baidu.com/s/1cqrgxkJqLK_EOEccMnPxDA )
提取码:xxyu

部署步骤(部分步骤可忽略)

  • 通过Xshell工具使用root用户登录到Linux系统(这里使用的是阿里云ECS)。连接Linux
  • 进入/usr目录 (cd /usr)
  • 创建mysql目录 (mkdir mysql)
  • 进入mysql目录 (cd mysql)
  • 使用wget从官网下载rpm包 (wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm)
    下载rpm包
  • 检查是否已安装Mysql

检查并强力卸载
for i in $(rpm -qa|grep mysql);do rpm -e $i --nodeps;done
rm -rf /var/lib/mysql && rm -rf /etc/my.cnf && rm -rf /usr/share/mysql

  • 安装rpm包

安装:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum localinstall mysql80-community-release-el8-1.noarch.rpm
yum install mysql-server

安装rpm包

  • 查看MySQL安装状态

查看MySQL安装状态及版本
ps -ef | grep mysql
mysqladmin --version

Mysql版本

  • 启动MySQL

启动MySQL服务
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld

启动MySQL

  • Mysql 相关目录

配置文件:/usr/share/mysql
数据文件:/var/lib/mysql
!!!启动配置文件:/etc/my.cnf.d

  • 登录MySQL,重置root密码

mysql -uroot
use mysql;
alter user ‘root’@‘localhost’ identified by ‘root’;
flush privileges;

修改密码

  • 退出后重新登录验证密码

quit
mysql -uroot -p

常用命令

  • 启动服务:systemctl start mysqld.service
  • 停止服务:systemctl stop mysqld.service
  • 服务状态:systemctl status mysqld.service
  • 查看初始密码:grep ‘temporary password’ /var/log/mysqld.log
  • 修改初始密码:alter user user() identified by “123456”;
  • 设置开机启动:systemctl enable mysqld.service
  • 停止开机启动:systemctl disable mysqld.service
  • 重启服务:service mysqld restart
  • 查看数据库最大连接数:show variables like “max_connections”;
  • 修改数据库最大连接数:set GLOBAL max_connections=2000;
  • 查询所有库的用户及执行情况:show processlist;
  • 查询数据库所有状态:show status;
  • 查询数据库指定状态:show status like ‘%变量名称%’;

Aborted_clients 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。
Aborted_connects 尝试已经失败的MySQL服务器的连接的次数。
Connections 试图连接MySQL服务器的次数。
Created_tmp_tables 当执行语句时,已经被创造了的隐含临时表的数量。
Delayed_insert_threads 正在使用的延迟插入处理器线程的数量。
Delayed_writes 用INSERT DELAYED写入的行数。
Delayed_errors 用INSERT DELAYED写入的发生某些错误(可能重复键值)的行数。
Flush_commands 执行FLUSH命令的次数。
Handler_delete 请求从一张表中删除行的次数。
Handler_read_first 请求读入表中第一行的次数。
Handler_read_key 请求数字基于键读行。
Handler_read_next 请求读入基于一个键的一行的次数。
Handler_read_rnd 请求读入基于一个固定位置的一行的次数。
Handler_update 请求更新表中一行的次数。
Handler_write 请求向表中插入一行的次数。
Key_blocks_used 用于关键字缓存的块的数量。
Key_read_requests 请求从缓存读入一个键值的次数。
Key_reads 从磁盘物理读入一个键值的次数。
Key_write_requests 请求将一个关键字块写入缓存次数。
Key_writes 将一个键值块物理写入磁盘的次数。
Max_used_connections 同时使用的连接的最大数目。
Not_flushed_key_blocks 在键缓存中已经改变但是还没被清空到磁盘上的键块。
Not_flushed_delayed_rows 在INSERT DELAY队列中等待写入的行的数量。
Open_tables 打开表的数量。
Open_files 打开文件的数量。
Open_streams 打开流的数量(主要用于日志记载)
Opened_tables 已经打开的表的数量。
Questions 发往服务器的查询的数量。
Slow_queries 要花超过long_query_time时间的查询数量。
Threads_connected 当前打开的连接的数量。
Threads_running 不在睡眠的线程数量。
Uptime 服务器工作了多少秒。

其他

  • 远程连接首次很慢(有可能是DNS反向解析造成)

my.cnf中配置关闭DNS反向解析
skip-name-resolve

  • 查找当前运行Mysql所使用的配置文件

which mysqld
/usr/sbin/mysqld --verbose --help | grep -A 1 ‘Default options’在这里插入图片描述

  • 跨库JOIN

检查FEDERATED引擎是否开启(show engines;)在这里插入图片描述
mysql 配置文件my.cnf中添加(federated
创建链接表
CREATE TABLE table_name (……)
ENGINE = FEDERATED
CONNECTION=‘mysql://[name]:[password]@[location]:[port]/[db-name]/[table-name]’
COMMENT = ‘用户’
限制:
1. 本地结构字段可以是远程表的部分字段,字段必须相同
2. 不支持事务
3. 不支持表结构修改
4. 删除本地表对链接表无影响

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值