1.mysql部署文档

news/2024/12/16 16:52:15/文章来源:https://www.cnblogs.com/shuiyirar/p/18610570

部署方式

1.docker上面部署

● 部署最新版本
docker pull mysql:latest # 拉取最新版本的镜像文件

docker images # 查看已经安装的镜像文件

docker ps -a # c

运行mysql容器

docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

参数说明

-p 3306:3306:映射容器服务的3306端口到宿主机的3306端口,外部主机可以通过宿主机ip:3306访问mysql服务
MYSQL_ROOT_PASSWORD:设置mysql服务的root用户密码

检查是否安装成功,并且启动

docker ps

在本地进入docker容器中连接mysql

docker exec -it 2e0e37441a3e /bin/bash

mysql -u root -p

删除docker上的容器

docker stop 2e0e37441a3e

docker rm 2e0e37441a3e

在docker中安装vim

apt-get update # 必须要先update

apt-get install vim

对docker修改以后需要对docker进行重启

systemctl restart docker

修改docker中的dns

echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null

查看docker中的resolve.conf

cat /etc/resolv.conf

yum源安装

下载安装mysql

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server

安装过程中可能会提示

GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

出现这种情况后

yum install mysql-community-server --nogpgcheck # 可以绕过GPG验证成功安装

启动MySQL服务

systemctl start mysqld.service

查看服务是否启动成功

systemctl status mysqld.service

mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2022-02-27 14:42:37 CST; 1min 15s ago

查看MySQL的初始密码

grep "password" /var/log/mysqld.log

进入数据库

mysql -uroot -p

修改MySQL的root密码

alter user root@localhost identified by '新密码';

查看MySQL密码设置规则

show variables like 'validate_password%'

mysql安装部署实践总结

	首相就是安装路径和数据路径分离,这一点尤为中要。下载二进制包,以.tar.gz为后缀名的文件,应该存在在/usr/local下

mv /tmp/mysql5.7 /usr/local/mysql

创建数据目录

mkdir -p /home/mysql

mysql中变量配置,在配置文件中进行

basedir=/usr/local/mysql
datadir=/home/mysql

初始化系统环境,比如创建用户,组之类的

chattr -i /etc/shadow /etc/group /etc/gshadow /etc/passwd
/usr/sbin/groupadd mysql
/usr/sbin/useradd mysql -g mysql -d
/home/mysql -s /sbin/nologin
chattr +i /etc/shadow /etc/group /etc/gshadow /etc/passwd

从support-files里面复制启动脚本,放到自启动设置中

cp -rf $basedir/support-files/mysql.server /etc/init.d/mysql

创建一下软连接,是/usr/bin中可以正常访问mysql的几个常用命令行工具

chown -R mysql:mysql $basedir $datadir
ln -f -s /usr/local/mysql/bin/mysql /usr/bin/mysql
ln -f -s /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump
ln -f -s /usr/local/mysql/bin/mysqladmin /usr/bin/mysqldadmin
ln -f -s /usr/local/mysql/bin/mysqlshow /usr/bin/mysqlshow
ln -f -s /usr/local/mysql/bin/mysqld /usr/bin/mysqld

设置mysql启动

/sbin/chkconfig --add mysql
/sbin/chkconfig --level 2345 mysql on

设置MySQL配置文件

可以从soupport-files里面复制一个模板,或者基于现有项目的模板也可以

cp $basedir/support-files/my.cnf.nor /etc/my.cnf

设置字符集

[client]
loose-default-character-set=utf8
[mysql]
character-set-server=utf8

如果现在启动mysql service mysql start,会遇到下面问题

service mysql start

Starting mysql (percona Server)......ERROR! the server quit without updating PID file (var/lib/mysql)test.cyou.com.pid).

而查看错误日志会看到很明显的问题,这个时候MySQL的数据字典还不存在

[ERROR] Fatal error:

can't open and lock privilege tables: table 'mysql.user' doesn't exist

[ERROR] Aborting

我们需要初始化数据字典

5.5 , 5.6可以使用如下方法

mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql

5.7中推荐的方式是使用mysqld的initialize选项

mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql

在尝试就没有问题了

service mysql start

mysql5.7版本中的密码设置,它基于安全考虑,要求设置一个默认的密码,如果不设置密码,则可以使用--initialize-insecure选项来初始化

直接登录会报错

查看默认密码

grep password.*.log

需要立即修改密码,不然不能进行任何操作

set password=password('mysql');

后面需要修改密码的方式

update user set authentication_string=PASSWORD('mysql') where User='root';

● mysql中密码设置的规则
Variable_name Value
validate_password_check_user_name OFF
validate_password_dictionary_file
validate_password_length 8
validate_password_mixed_case_count 1
validate_password_number_count 1
validate_password_policy MEDIUM
validate_password_special_char_count 1

● 密码的长度是由validate_password_length决定的,而validate_password_length的计算公式是:
validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

修改MySQL密码的规则

set global validate_password_policy=0;
set global validate_password_length=1;

● 由于安装了yum Repository,以后每次yum操作都会自动更新,需要把这个卸载
yum -y remove mysql57-community-release-el7-10.noarch

● 授权可视化工具能够连接
use mysql;

grant all privileges on . to root@'%' identified by '123456';

强制刷新权限

flush privileges;

查看用户表

select user,host from user;

● 查看服务器防火墙设置

1、centos7中的防火墙由firewalld来管理,而不是iptables

firewall-cmd --state # 结果现实为running或者not running
或者
systemctl status firewalld

2、关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

3、关闭防火墙firewall后开启
systemctl start firewalld.service

4、开启端口

zone -- 作用域

add-port=80/tcp -- 添加端口,格式为:端口/通讯协议

permanent -- 永久生效,没有此参数重启后失效

firewall-cmd --zone=public --add-port=3306/tcp --permanent

开启3306端口后,workbench或naivcat 就能连接到MySQL数据库了

5、重启防火墙
firewall-cmd --reload

6、常用命令介绍
firewall-cmd --state ##查看防火墙状态,是否是running
firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones ##列出支持的zone
firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
iptables -L -n ##查看规则,这个命令是和iptables的相同的
man firewall-cmd ##查看帮助
systemctl status firewalld.service ##查看防火墙状态
systemctl [start|stop|restart] firewalld.service ##启动|关闭|重新启动 防火墙

查询端口号80 是否开启

firewall-cmd --query-port=80/tcp

● 也可以还原传统的管理方式使用iptalbles

systemctl stop firewalld
systemctl mask firewalld

安装iptables-services

yum install iptables-services

设置开机启动

systemctl enable iptables

操作命令

systemctl stop iptables
systemctl start iptables
systemctl restart iptables
systemctl reload iptables

保存设置

service iptables save

开放某个端口

vim /etc/sysconfig/iptables

添加

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

● yum安装的mysql的安装目录
mysql目录 说明
/var/lib/mysql mysql数据文件存放路径,可自定义
/etc/my.cnf mysql配置文件路径
/usr/lib64/mysql mysql库文件路径
/usr/bin/mysql* mysql二进制可执行文件路径
/etc/rc.d/init.d/mysqld mysql服务管理脚本地址
/var/log/mysqld.log mysql日志文件路径

● 查看MySQL的端口号

show global variables like 'port';

修改MySQL的端口号

vi /etc/my.cnf

在[mysqld]下添加

port=3306

数据库设置开机自启

1.先将/usr/local/mysql/mysql/support-files/ 文件夹下的mysql.server文件复制到 /etc/rc.d/init.d/ 目录下mysqld

cp /usr/local/mysql/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

2.赋予可执行权限:chmod +x /etc/init.d/mysqld

3.添加为服务: chkconfig --add mysqld

4.查看服务列表: chkconfig --list

看到3、4、5状态为开或者为 on 则表示成功。如果是 关或者 off 则执行一下:chkconfig --level 345 mysqld on

重启计算机:reboot

搭建从库

查看GTID状态,新版本是已经开启的状态

show master status\G

查看binlog状态

show variables like '%log_bin%'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/853837.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(BIBM-2024) 用于药物相互作用预测的可解释多视图注意网络

用于药物相互作用预测的可解释多视图注意网络 论文标题: Interpretable multi-view attention network for drug-drug interaction prediction 论文地址: https://ieeexplore.ieee.org/document/10385757 论文期刊: BIBM 2024 摘要 药物间相互作用(DDI)在药物发现中发挥着越来…

Volatility取证工具安装教程

linux安装vol2.6 1.准备工作 准备一台虚拟机,拥有python2版本(虚拟机以kali为例) 准备Volatility2.6安装包 volatilityfoundation/volatility: An advanced memory forensics framework 准备反编译库安装包 vext01/distorm3: distorm3 2.安装步骤详解(全程在root用户下操作…

[React]AntDesign 4.x 汉化

antd汉化,适用于4.x转载自:https://blog.csdn.net/weixin_43013802/article/details/132870349全局汉化,在main.ts中引入下面代码:import{ ConfigProvider }fromantd import locale from antd/locale/zh_CN; import dayjs/locale/zh-cn;ReactDOM.createRoot(document.getEl…

线性回归(linear regression)

其实线性回归不过就是在做两件事,画一条线并判断这条线到各个点的距离。 如下图:其中这条线便是距离各个点距离总和最小的直线。也就是e+u+w+b+a总和在直线为这个情况下最小。但是什么时候这条线是我们需要的线呢?-- 线到各个点最短的时候便是。 我们先理解一下什么是凹函数…

数据库安全性与权限管理

title: 数据库安全性与权限管理 date: 2024/12/16 updated: 2024/12/16 author: cmdragon excerpt: 数据库安全性与权限管理是保护数据不被未授权访问和操控的关键所在。通过实施有效的安全措施和细粒度的权限控制,可以确保数据库的完整性、机密性和可用性。 categories:前端…

数据整合+团队协作,电商选品效率提升100%!

选品快准狠!在线协同助力电商团队做出更聪明的决策 在电商行业,“选品”决定成败。无论是发现爆款、避开雷区,还是追踪最新趋势,每一个决策都离不开团队协作与信息整合。然而,大量的电商团队仍旧面临以下常见问题: - 决策过程拉长,错失销售机会。 - 数据不统一,选品思路…

xshell类似的工具,还有哪些Xshell类似的工具呢

Xshell是一款功能强大的远程连接工具,广泛用于SSH、Telnet和Rlogin协议,帮助用户轻松连接和管理远程服务器。然而,Xshell并不是唯一的远程连接工具,市面上还有其他一些类似的工具,能够提供类似甚至更丰富的功能。那么,除了Xshell,还有哪些类似的远程连接工具呢?以下将为…

SOA整车电子电气仿真测试解决方案

经纬恒润TESTBASE 硬件在环(HIL)仿真测试平台可以为SOA电子电气系统提供高效自动化测试的一站式解决方案,为SOA车型电子电气系统的测试验证提供有力保障。概述软件定义汽车时代,汽车电子软件的功能数量和复杂度与传统汽车相比有了爆炸式增长,并且还在不断提升。以中央+区域…

线程和进程

线程 什么是线程和进程? 何为进程? 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。 在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进…

FastExcel 合并单元格(相当的行数据,进行合并)

目录需求思路实现Excel导出单元格全量合并策略日期格式转换接口代码ServiceDTO 使用FastExcel数据导出:官网: https://idev.cn/fastexcel/zh-CN 需求 信用代码、填报人,唯一时,将:信用代码、单位名称、填报人,进行 row 合并,并垂直居中对齐思路 这边不需要做列合并,所…

街面环卫算法视频分析服务器浅析智能视频监控在智慧城市的应用与趋向

在数字化浪潮的推动下,智慧城市的建设已成为全球范围内城市发展的重要趋势。智慧城市不仅仅是技术的集合,它更是一个系统工程,涉及到城市管理的各个方面,旨在通过高科技手段提升城市的运行效率和居民的生活质量。 其中,智能视频监控技术作为智慧城市建设的关键组成部分,正…

嘻嘻嘻嘻嘻测试下

凡你能说的,你说清楚。凡你不能说的,留给沉默!