概述
本文介绍在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)。
- 进入/usr目录 (cd /usr)
- 创建mysql目录 (mkdir mysql)
- 进入mysql目录 (cd mysql)
- 使用wget从官网下载rpm包 (wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.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
- 查看MySQL安装状态
查看MySQL安装状态及版本
ps -ef | grep mysql
mysqladmin --version
- 启动MySQL
启动MySQL服务
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld
- 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 TABLEtable_name
(……)
ENGINE = FEDERATED
CONNECTION=‘mysql://[name]:[password]@[location]:[port]/[db-name]/[table-name]’
COMMENT = ‘用户’
限制:
1. 本地结构字段可以是远程表的部分字段,字段必须相同
2. 不支持事务
3. 不支持表结构修改
4. 删除本地表对链接表无影响