狂创客圈 经典图书 : 《Netty Zookeeper Redis 高并发实战》 面试必备 + 面试必备 + 面试必备 【博客园总入口 】css
疯狂创客圈 经典图书 : 《SpringCloud、Nginx高并发核心编程》 大厂必备 + 大厂必备 + 大厂必备 【博客园总入口 】html
入大厂+涨工资必备: 高并发【 亿级流量IM实战】 实战系列 【 SpringCloud Nginx秒杀】 实战系列 【博客园总入口 】java
组件 | 连接地址 |
---|---|
windows centos 虚拟机 安装&排坑 | vagrant+java+springcloud+redis+zookeeper镜像下载(&制做详解)) |
centos mysql 安装&排坑 | centos mysql 笔记(内含vagrant mysql 镜像) |
linux kafka安装&排坑 | kafka springboot (或 springcloud ) 整合 |
Linux openresty 安装 | Linux openresty 安装 |
【必须】Linux Redis 安装(带视频) | Linux Redis 安装(带视频) |
【必须】Linux Zookeeper 安装(带视频) | Linux Zookeeper 安装, 带视频 |
Windows Redis 安装(带视频) | Windows Redis 安装(带视频) |
RabbitMQ 离线安装(带视频) | RabbitMQ 离线安装(带视频) |
ElasticSearch 安装, 带视频 | ElasticSearch 安装, 带视频 |
Nacos 安装(带视频) | Nacos 安装(带视频) |
【必须】Eureka | Eureka 入门,带视频 |
【必须】springcloud Config 入门,带视频 | springcloud Config 入门,带视频 |
【必须】SpringCloud 脚手架打包与启动 | SpringCloud脚手架打包与启动 |
Linux 自启动 假死自启动 定时自启 | Linux 自启动 假死启动 |
疯狂创客圈网盘,为你们准备了springcloud.box 虚拟机镜像,里边预装了java 、 redis 、zookeeper、kafka、Eureka、springcloud config、mysql 等必须的组件,省去你们准备开发环境的烦恼,何不妙哉。网盘地址请参见【博客园总入口 】mysql
若是真正要本身安装,请使用下面的教程。 这也是笔者的安装笔记,而且会持续进行问题记录。linux
在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了须要,仍是要在系统中安装MySQL,并且安装完成以后能够直接覆盖掉MariaDB。nginx
因为CentOS 的yum源中没有mysql,须要到mysql的官网下载yum repo配置文件。下载命令:面试
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
执行过程以下:redis
[root@localhost work]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm --2020-12-27 02:02:22-- http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm ..... HTTP request sent, awaiting response... 200 OK Length: 25548 (25K) [application/x-redhat-package-manager] Saving to: ‘mysql57-community-release-el7-10.noarch.rpm’ 100%[==================================================================================================>] 25,548 127KB/s in 0.2s 2020-12-27 02:04:42 (127 KB/s) - ‘mysql57-community-release-el7-10.noarch.rpm’ saved [25548/25548]
使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,spring
rpm -ivh mysql57-community-release-el7-10.noarch.rpm
执行过程以下:sql
[root@localhost work]# rpm -ivh mysql57-community-release-el7-10.noarch.rpm warning: mysql57-community-release-el7-10.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY Preparing... ################################# [100%] Updating / installing... 1:mysql57-community-release-el7-10 ################################# [100%]
执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
必须进入到 /etc/yum.repos.d/目录后再执行如下脚本, 而后就能够直接yum安装了。
[root@localhost ~]# yum install mysql-server
这步可能会花些时间,安装完成后就会覆盖掉以前的mariadb。
[root@localhost yum.repos.d]# yum install mysql-server Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile ..... Installed: mysql-community-libs.x86_64 0:5.7.32-1.el7 mysql-community-libs-compat.x86_64 0:5.7.32-1.el7 mysql-community-server.x86_64 0:5.7.32-1.el7 Dependency Installed: mysql-community-client.x86_64 0:5.7.32-1.el7 mysql-community-common.x86_64 0:5.7.32-1.el7 Dependency Updated: openssl.x86_64 1:1.0.2k-21.el7_9 openssl-libs.x86_64 1:1.0.2k-21.el7_9 postfix.x86_64 2:2.10.1-9.el7 Replaced: mariadb-libs.x86_64 1:5.5.44-2.el7.centos Complete!
systemctl start mysqld
获取安装时的临时密码(在第一次登陆时就是用这个密码):grep 'temporary password' /var/log/mysqld.log
[root@localhost yum.repos.d]# grep 'temporary password' /var/log/mysqld.log 2020-12-27T02:34:04.063826Z 1 [Note] A temporary password is generated for root@localhost: LXwH6NSf*kVh
使用临时密码,登陆mysql
mysql -u root -p
而后输入密码(刚刚获取的临时密码)LXwH6NSf*kVh
一、首先须要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 便可,
输入设值语句 “ set global validate_password_policy=LOW; ” 进行设值,
二、当前密码长度为 8 ,若是不介意的话就不用修改了,按照通用的来说,设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 便可,
输入设值语句 “ set global validate_password_length=6; ” 进行设值,
三、如今能够为 mysql 设置简单密码了,只要知足六位的长度便可,
输入修改语句 “ ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; ” 能够看到修改为功,表示密码策略修改为功了!!!
执行过程以下:
[root@localhost yum.repos.d]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.32 Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> set global validate_password_policy=LOW -> ; Query OK, 0 rows affected (0.03 sec) mysql> set global validate_password_length=6; Query OK, 0 rows affected (0.01 sec) mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; Query OK, 0 rows affected (0.04 sec)
注意:必定要记得在写sql的时候要在语句完成后加上" ; "
systemctl start mysqld
systemctl stop mysqld
systemctl restart mysqld
systemctl status mysqld
systemctl enable mysqld
systemctl disable mysqld
默认状况下,mysql账号不容许从远程登录,只能在localhost登陆。本文提供了二种方法设置mysql能够经过远程主机进行链接。
#mysql -u root -p Enter password: mysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user;
说明: % 表明任意的客户端,可替换成具体IP地址。
例如: 你想myuser使用mypassword(密码)从任何主机链接到mysql服务器的话。
mysql>GRANT ALL PRIVILEGES ON . TO ‘myuser’@’%’IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
若是你想容许用户myuser从ip为192.168.1.6的主机链接到mysql服务器,并使用mypassword做为密码
mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION; mysql>FLUSH PRIVILEGES
vi /etc/my.cnf
添加
[mysqld] character_set_server=utf8 init_connect='SET NAMES utf8'
/etc/my.cnf 日志文件:/var/log//var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid
找到你安装MySQL的时候的my.cnf这个文件
以下图所示:在 mysqld下添加一行
lower_case_table_names=1 (1不区分大小写,0区分大小写,默认为0)
尝试解决了一下上面的链接超时问题,可是发现并无什么用,仍是会出现上面的问题。因而便怀疑是否是远程链接 Mysql 太慢致使了链接超时?由于我在 CentOS7 服务端和 Windows 本地的 Navicat 链接 mysql 都没问题。在网上查询了下,发如今 mysql 的配置文件 /etc/my.cnf 中增长以下配置参数:
# 注意该配置是加在[mysqld]下面
[mysqld]
skip-name-resolve
而后须要重启 mysql 服务。由于根听说明,若是 mysql 主机查询和解析 DNS 会致使缓慢或是有不少客户端主机时会致使链接很慢。同时,请注意在增长该配置参数后,mysql的受权表中的host字段就不可以使用域名而只可以使用ip地址了,由于这是禁止了域名解析的结果。
[root@localhost yum.repos.d]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead)
systemctl stop firewalld.service #关闭防火墙
systemctl start firewalld
再次经过systemctl status firewalld查看firewalld状态,显示running即已开启了。
再次执行执行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示success,表示设置成功,
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload
说明:开发环境,关闭防火墙便可
1 ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
版本5.6 解决方案;经过root帐号,设置两个全局变量:
set global innodb_large_prefix=on; set global innodb_file_format=Barracuda;
具体异常
MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
查看 tomcat 的日志文件,发如今报错开始部分出现了这个错误。通过查询,发现这个错误的 缘由 是:同一个 ip 在短期内产生太多(超过 mysql 数据库 maxconnectionerrors 的最大值)中断的数据库链接而致使的阻塞。
进入 CentOS7 服务器:
注: 方法二清理 hosts 文件,也能够直接进入 mysql 数据库执行命令:mysql> flush hosts;
疯狂创客圈 - Java高并发研习社群,为你们开启大厂之门