centOS_7_mysql安装、防火墙配置手记

许老师技术分享805

centOS 7 mysql安装手记

 

 (文中图片引用自网络,侵删!)

 

0.删除mariadb

rpm -qa | grep -i mariadb

rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64

 

网上经验:

使用yum方式安装MySQL时不用卸载也可以,会被自动替代    通过rpm方式安装需要卸载,否则会出现依赖问题

 

rpm -qa | grep mysql

若有残留也需要卸载

 

1.下载MySQL仓库并安装

wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

mysql57-community-release-el7-7.noarch

 

yum -y install mysql80-community-release-el7-3.noarch.rpm

 

默认安装MySQL8.0,如果需要安装MySQL5.7的话需要修改/etc/yum.repos.d/mysql-community.repo配置文件

 

mysql80enabled属性改为0mysql57enabled属性改为1.

(安装MySQL8.0跳过该步骤)

image.png

2.安装MySQL

yum -y install mysql-community-server

 

3.查看mysql默认密码并登陆

cat /var/log/mysqld.log | grep password

image.png

mysql -uroot -p

 

4.修改初始密码(若想改为弱密码)

第一次登录,必须修改密码为强密码,便可以继续进行修改密码验证策略操作

SHOW variables LIKE 'validate_password%';

image.png

将密码验证策略改为LOW,密码长度4位以上

set global validate_password.policy=0;    #有的MySQL版本为

validate_password_policy,此处请以上一步查询到的字段名称为准

set global validate_password.length=4; #重启MySQL后失效

 image.png

ALTER USER 'root'@'localhost' IDENTIFIED BY 'your password';


5.设置远程连接(前提:关闭防火墙或开放3306端口)

5.1.防火墙配置

#开启防火墙

systemctl start firewalld 

#查看配置

firewall-cmd --state   

firewall-cmd --list-all

image.png

#开放3306端口

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

firewall-cmd –reload

image.png

#移除以上规则

friewall-cmd --permanent --remove-port=80/tcp

firewall-cmd --reload

#放通某个端口段

firewall-cmd --permanent --zone=public --add-port

firewall-cmd --reload

#放通某个IP访问,默认允许

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.1.169 accept'

firewall-cmd --reload

#禁止某个IP访问

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=10.0.0.42 drop'

firewall-cmd --reload

#放通某个IP访问某个端口

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.1.169 port protocol=tcp port=6379 accept'

firewall-cmd --reload

#移除以上规则

firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.169" port port="6379" protocol="tcp" accept'

firewall-cmd --reload

#放通某个IP段访问

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=10.0.0.0/24 accept'

 

5.2.设置允许远程连接

mysql数据库的user表中查看host,默认只允许localhost访问

只需将localhost改为%允许任意地址访问即可

image.png

update user set host = '%' where user = 'root';

flush privileges;             # 刷新权限 权限更新后刷新才会起作用

或者

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

flush privileges;  

image.png

 注:如果使用客户端连接提示了plugin caching_sha2_password错误,这是因为MySQL8.0的密码策略默认为caching_sha2_password(MySQL5.7无此问题)

 修改:

update user set plugin = 'mysql_native_password' where user = 'root';

flush privileges;             # 刷新权限 权限更新后刷新才会起作用

 

6.my.cnf配置文件简介

前言:若使用rpm方式安装,可能无/etc/my.cnf配置文件,需将/usr/share/mysql目录下配置文件复制至/etc目录下

 

cp /usr/share/mysql/my-large.cnf /etc/my.cnf

[client]

 

port = 3306

 

socket = /var/run/mysql/mysql.sock

 

[mysqldump]

 

quick

 

max_allowed_packet = 16M

 

以上参数会被 MySQL 客户端应用读取,参数说明如下:

 

portMySQL 客户端连接服务器端时使用的端口号,默认为 3306

socket:套接字文件所在目录

quick:支持较大的数据库转储,导出非常巨大的表时需要此项。

max_allowed_packet:服务所能处理的请求包的最大大小以及服务所能处理的最大的请求大小(当与大的BLOB字段一起工作时相当必要),每个连接独立的大小,大小动态增加。

 

[mysqld]

 

user = mysql

 

basedir = /usr/local/mysql

 

datadir = /mydata/mysql/data

 

port = 3306

 

server-id = 1

 

socket = /var/run/mysql/mysql.sock

 

上述参数说明如下:

 

usermysqld 程序在启动后将在给定 UNIX/Linux 账户下执行。mysqld 必须从 root 账户启动才能在启动后切换到另一个账户下执行。mysqld_safe 脚本将默认使用 user=mysql 选项来启动 mysqld 程序。

basedir:指定 MySQL 安装的绝对路径;

datadir:指定 MySQL 数据存放的绝对路径;

port:服务端口号,默认为 3306

server-idMySQL 服务的唯一编号,每个 MySQL 服务的 id 需唯一。

socketsocket 文件所在目录

 

character-set-server = utf8mb4

 

collation-server = utf8mb4_general_ci

 

init_connect = 'SET NAMES utf8mb4'

 

lower_case_table_names = 1

 

key_buffer_size = 16M

 

max_allowed_packet = 8M

 

no-auto-rehash

 

sql_mode=TRADITIONAL

 

skip-grant-tables

 

character-set-server:数据库默认字符集

collation-server:数据库字符集对应一些排序等规则,注意要和character-set-server对应

init_connect:设置client连接mysql时的字符集,防止乱码

lower_case_table_names:是否对sql语句大小写敏感,1表示不敏感(MySQL8.0+需要初始化之前设置)

key_buffer_size:用于指定索引缓冲区的大小

max_allowed_packet:设置一次消息传输的最大值

no-auto-rehash:仅仅允许使用键值的UPDATESDELETES

sql_mode:表示 SQL 模式的参数,通过这个参数可以设置检验 SQL 语句的严格程度

skip-grant-tables:跳过密码验证 (平时不要开启,忘记root密码时再使用)

忘记root密码时:

 

重置root密码为空(开启skip-grant-tables)

 

UPDATE mysql.user SET authentication_string = '' WHERE user = 'root';


相关文章

win版 postgresql配置简单说明

win版 postgresql配置简单说明

win版 postgresql配置简单说明官网下载最新win版本压缩包,本例中使用的是postgresql-11.5-1-windows-x64-binaries.zip解压缩到指定目录,比如D:\p...

python环境的打包与加载

python环境的打包与加载

目录1 pip方式1.1 requirements.txt文件的生成1.2 requirements.txt环境的加载:2 conda方式2.1 env.yml文件的生成2.2 env.yml文件的加...

开源--open-falcon

开源--open-falcon

一、open-falcon简介  open-falcon是由小米运维团队,从互联网公司角度为出发点,开发出来的一套面向互联网行业的企业级的开源监控系统,截至2019年7月,open-falcon最新稳...

安装Win11系统绕过TPM 2.0的三种方法

安装Win11系统绕过TPM 2.0的三种方法

安装Win11系统绕过TPM 2.0的三种方法 微软在发布了Win11系统以后,同时也发布了Win 11操作系统的硬件配置要求,其中有一点卡住了很多电脑,那就是TPM2.0。微软认为,TPM2.0芯片...

「Kubernetes」k8s 的基本使用指令

结构模型k8s 是经典的一对多模型,有一个主要的管理节点master和许多的工作节点slaver。当然,k8s 也可以配置多个管理节点,拥有两个以上的管理节点被称为 高可用。k8s 包括了许多的组件,...

Python 的打包神器 — Nuitka

Python 的打包神器 — Nuitka

一. pyinstaller和Nuitka使用感受1.1 使用需求这次也是由于项目需要,要将python的代码转成exe的程序,在找了许久后,发现了2个都能对python项目打包的工具——pyinta...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。