1.mysql部署文档
部署方式
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%'
1.mysql部署文档的更多相关文章
- centos6 Cacti部署文档
centos6 Cacti部署文档 1.安装依赖 yum -y install mysql mysql-server mysql-devel httpd php php-pdo php-snmp ph ...
- HP DL160 Gen9服务器集群部署文档
HP DL160 Gen9服务器集群部署文档 硬件配置=======================================================Server Memo ...
- CDH简易离线部署文档
CDH 离线简易部署文档 文档说明 本文为开发部署文档,生产环境需做相应调整. 以下操作尽量在root用户下操作,避免权限问题. 目录 文档说明 2 文档修改历史记录 2 目录 3 ...
- 部署文档(centos7.x\nginx\mysql5.6\jdk1.8\ssl\jboot)
部署文档(centos7.x\nginx\mysql5.6\jdk1.8\ssl\jboot) 1.基础环境********************************************** ...
- 2022最新IntellJ IDEA诺依开发部署文档
前景提示 若伊是国内一款很好的开源项目,非常的便于学习,而且它是开源免费的,但是,它的开发部署文档实在是没法按照那个文档,快速高效的在本地搭建一套可以运行的项目,对于学习开发和使用实在是一大难题,为此 ...
- 2022最新IntellJ IDEA的mall开发部署文档
目录 版本说明 一.概述 二.基本构建 三.Git 导入编译器 四.模块描述浅析 五.配置文档 application.yml修改,涉及模块 application-dev.yml修改,涉及模块 ge ...
- 2022最新IntellJ IDEA的zheng开发部署文档
目录 前景提示 一.环境整合 构建工具(参考工具部署方式) 二.git 导入编译器 三.模块描述浅析 四.配置文档 1.总配置 2.数据库配置 3.密码设置 4.配置建议 五.在IDEA中执行MySQ ...
- 高效查看MySQL帮助文档的方法
在mysql的使用过程中, 可能经常会遇到以下问题: 某个操作语法忘记了, 如何快速查找? 如何快速知道当前版本上某个字段类型的取值范围? 当前版本都支持哪些函数?希望有例子说明.. 当前版本是否支持 ...
- PPTP部署文档
PPTP部署文档 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入:高级运维工程师之路 598432640 前言:这款VPN部署起来特别简单,想对OPENVON配 ...
- hadoop2.6.0汇总:新增功能最新编译 32位、64位安装、源码包、API下载及部署文档
相关内容: hadoop2.5.2汇总:新增功能最新编译 32位.64位安装.源码包.API.eclipse插件下载Hadoop2.5 Eclipse插件制作.连接集群视频.及hadoop-eclip ...
随机推荐
- Spirng Aop 实现自定义注解及实现
需求:日志记录 需要记录当前用户访问的每个接口对应的前端页面功能信息 声明一个注解 @Documented @Retention(RetentionPolicy.RUNTIME) @Target({E ...
- 24. echarts 可以画哪些图表
1. 折线图 2. 柱状图 3. 饼图 4. 地图 5. 雷达图 延申问题:画折线图和柱状图哪些配置可以改变样式 1. color 设置每个数据的颜色 2. grid 网格设置图表的大小 3. s ...
- 云原生爱好者周刊:揪出 Prometheus 中时间戳抖动
开源项目推荐 O11y toolkit O11y toolkit 是一个工具集,用来维护.调试和增强你的可观测性系统,改善我们日常对指标.日志和链路追踪的使用体验.例如 oy-scrape-jitte ...
- vscode中整合豆包MarsCode编程助手
豆包MarsCode是字节跳动旗下的一款AI工具,最近在刷帖子时看到已经可以在vscode中通过插件安装MarsCode工具,接下来我们来看下操作流程以及使用效果. 第一步:首先需要注册下豆包账号 豆 ...
- Solution of CF1842C
Brief description of the title 若 \(a_i=a_j\) 且 \(1\le i < j\le |a|\).则删除 \(a_{i}\) 到 \(a_j\) 所有数. ...
- C++ mutable与常对象语义详解
摘编自 <Effective C++> 条款三. "成员函数如果是const" 或者 "一个对象是const对象"到底意味什么?有两个流行概念:bi ...
- 学习JavaScript第五天
文章目录 1.HTML DOM 1.1 表单相关元素 ① form 元素 ② 文本输入框类和文本域(input 和 textarea) ③ select 元素 1.2 表格相关元素 ① table 元 ...
- TrueNAS关闭5357端口
sockstat -4l 查看监听5357端口进程的ID. 用kill -9 PID 干掉进程.
- Nuxt.js 应用中的 imports:dirs 事件钩子详解
title: Nuxt.js 应用中的 imports:dirs 事件钩子详解 date: 2024/10/30 updated: 2024/10/30 author: cmdragon excerp ...
- leetcode 740 删除并获得点数
740 删除并获得点数 题意 给你一个整数数组 nums ,你可以对它进行一些操作. 每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数.之后,你必须删除 所有 等于 n ...