yum 安装MySQL8

echo "删除系统默认或之前可能安装的其他版本的 mysql"

for i in $(rpm -qa|grep mysql);do rpm -e $i --nodeps;done
rm -rf /var/lib/mysql && rm -rf /etc/my.cnf echo "安装Mysql8.0 的yum资源库"
yum -y localinstall https://repo.mysql.com//mysql80-community-release-el7-5.noarch.rpm echo "安装Mysql8.0.29"
yum -y install mysql-community-server echo "启动之前修改配置文件,增加上不区分大小写的参数" rm -rf /etc/my.cnf cat >> /etc/my.conf << EOF
[client]
default-character-set = utf8mb4 [mysql]
default-character-set = utf8mb4 [mysqld] datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4' default-storage-engine=INNODB
lower_case_table_names=1
skip-name-resolve
EOF echo "启动MySQL服务器和MySQL的自动启动"
systemctl start mysqld.service
systemctl enable mysqld.service echo "查看默认密码"
grep 'temporary password' /var/log/mysqld.log # msqyl8-master ==> root@localhost: S3ZhifuI)xg# echo "使用默认密码初次登录后, 必须要重置密码" echo "8.0.29版本修改密码提示不符合密码复杂度,修改密码复杂度找不到密码策略,安装密码策略需要先修改密码,陷入死循环"
echo "解决办法;直接修改密码,密码设置复杂一些" # mysql -hlocalhost -uroot -p #ALTER USER 'root'@'localhost' IDENTIFIED BY 'E9M!EYjGWH%QLJzP';
#flush privileges;
# 修改密码安全度检测机制
set global validate_password.policy=0;
set global validate_password.length=4; # 修改root密码
alter user 'root'@'localhost' identified by 'newpassword';
alter user 'root'@'%' identified by 'newpassword'; # 生效
flush privileges; 重启MySQL

8.0.29版本遇到的问题

1.执行:set global validate_password.policy=0;会报错:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
2.修改的密码太简单报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
3.安装密码策略:install plugin validate_password soname 'validate_password.so'; 会报错:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

因此最简单的办法就是直接修改密码,密码设置复杂一些。

创建用户和授权

在mysql8.0创建用户和授权和之前不太一样了,其实严格上来讲,也不能说是不一样, 只能说是更严格, mysql8.0需要先创建用户(创建用户时要带@并指定地址, 则grant授权时的地址就是这个@后面指定的!, 否则grant授权就会报错!)和设置密码,然后才能授权。

mysql> create user 'kevin'@'%' identified by '123456';
Query OK, 0 rows affected (0.04 sec) mysql> grant all privileges on *.* to 'kevin'@'%' with grant option;
Query OK, 0 rows affected (0.04 sec)

Mysql8.0默认是不能使用root账号进行远程登录的! root账号只能本地登录,想要远程登录, 则需要进行update更新下root账号的权限

update mysql.user set host='%' where user="root";
flush privileges;
select host,user,authentication_string from mysql.user;

用navicat进行mysql的远程连接时,出现了弹窗报错

修改root账号权限, 允许root账号远程登录后, 用navicat进行mysql的远程连接时,出现了弹窗报错:

出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password, 而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种:

一种是升级navicat驱动;一种是把mysql用户登录密码加密规则还原成mysql_native_password;

这里选择第二种方法来解决: (个人建议使用第一种方法)

#修改加密规则
mysql> ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.16 sec) #更新一下用户的密码
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.08 sec) #刷新权限
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.03 sec)
1、使用sqlyog链接时会出现2058的异常,此时我们需要修改mysql,命令行登录mysql(与修改密码中登录相同,使用修改后的密码),然后执行下面的命令:mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; 其中password为自己修改的密码。然后SQLyog中重新连接,则可连接成功,OK。

2、如果报错:ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'则使用下面命令:mysql > ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

mysql8.0默认编码方式

mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8mb3 |
| character_sets_dir | /usr/share/mysql-8.0/charsets/ |
| collation_connection | utf8mb4_0900_ai_ci |
| collation_database | utf8mb4_0900_ai_ci |
| collation_server | utf8mb4_0900_ai_ci |
+--------------------------+--------------------------------+
11 rows in set (0.00 sec)

修改其他编码方式,比如需要修改为utf8mb4,可以使用如下方式:

# 修改mysql配置文件my.cnf, 找到后请在以下三部分里添加如下内容,然后重启mysqld服务即可

[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
# 参数讲解
character_set_client (客户端来源数据使用的字符集)
character_set_connection (连接层字符集)
character_set_database (当前选中数据库的默认字符集)
character_set_results (查询结果字符集)
character_set_server (默认的内部操作字符集)

数据库连接参数中:

characterEncoding=utf8 会被自动识别为utf8mb4,也可以不加这个参数,会自动检测。
而autoReconnect=true 是必须加上的。

部分参数配置查询命令

#查询mysql最大连接数设置
mysql> show global variables like 'max_conn%';
mysql> SELECT @@MAX_CONNECTIONS AS 'Max Connections'; # 查看最大链接数
mysql> show global status like 'Max_used_connections'; # 查看慢查询日志是否开启以及日志位置
mysql> show variables like 'slow_query%'; # 查看慢查询日志超时记录时间
mysql> show variables like 'long_query_time'; # 查看链接创建以及现在正在链接数
mysql> show status like 'Threads%'; # 查看数据库当前链接
mysql> show processlist; # 查看数据库配置
mysql> show variables like '%quer%';

mysql8数据库修改root密码,以及创建用户遇到的坑,开启远程登录,用navicat进行mysql的远程连接,mysql8.0默认编码方式,部分参数配置查询命令的更多相关文章

  1. mysql8.0.11修改root密码,其他创建用户和删除用户

    1.7. 查询用户密码: 查询用户密码命令:mysql> select host,user,authentication_string from mysql.user; host: 允许用户登录 ...

  2. CentOS 7 修改root 密码

    环境: 1.重启系统在加载内核的地方按e,编辑启动脚本 2.将ro crashkernel = auto 所在地的 ro 替换为 rw init=/sysroot/bin/sh 3.修改完成后用Ctr ...

  3. 【转载】安装mysql8.0.11以及修改root密码、连接navicat for mysql。

    1.1. 下载: 官网下载zip包,我下载的是64位的: 下载地址:https://dev.mysql.com/downloads/mysql/ 下载zip的包: 下载后解压:(解压在哪个盘都可以的) ...

  4. 安装mysql8.0.11以及修改root密码、连接navicat for mysql。

    最近在学习node.js,少不得要跟数据库打交道,于是打算安装一个数据库软件,在mongedb和mysql之间选择了mysql.作为一个数据库新人不敢评论孰好孰坏,最后选择mysql纯属因为公司在用m ...

  5. 安装mysql8.0.11及修改root密码、连接navicat for mysql的思路详解

    1.1. 下载: 官网下载zip包,我下载的是64位的: 下载地址:https://dev.mysql.com/downloads/mysql/ 下载zip的包: 下载后解压:(解压在哪个盘都可以的) ...

  6. kali,创建/修改root密码,进入单元模式

    第一次发博客,从入门开始,从爱好变为工作 本人学习渗透不到一个月,如果有大佬看到此文章请不要喷,毕竟萌新不懂事,哈哈~ kali是一种非常强大的渗透工具 先说一下kali中的三个符号把   ~    ...

  7. ansible非root用户批量修改root密码

    前言: 由于线上服务器密码长久没有更新,现领导要求批量更换密码.线上的之前部署过salt,但由于各种因素没有正常使用. 使用自动化工具批量修改的计划搁浅了,后来领导给了个python多线程修改密码脚本 ...

  8. CentOS单用户模式下修改ROOT密码和grub加密

    Linux 系统处于正常状态时,服务器主机开机(或重新启动)后,能够由系统引导器程序自动引导 Linux 系统启动到多用户模式,并提供正常的网络服务.如果系统管理员需要进行系统维护或系统出现启动异常时 ...

  9. centos单用户模式:修改ROOT密码和grub加密

    centos单用户模式:修改ROOT密码和grub加密 CentOSLinux网络应用配置管理应用服务器  Linux 系统处于正常状态时,服务器主机开机(或重新启动)后,能够由系统引导器程序自动引导 ...

随机推荐

  1. springboot集成swagger2报Illegal DefaultValue null for parameter type integer

    springboot集成swagger2,实体类中有int类型,会报" Illegal DefaultValue null for parameter type integer"的 ...

  2. 简单状压dp的思考 - 最大独立集问题和最大团问题 - 壹

    本文参考:CPH ,USACO Guide (大佬请越过,这是初学笔记,不要吐槽内容) 前置知识:位运算基础,动态规划基础 介绍 状态是元素的子集的动态规划算法,可以用位运算来高效的优化. 那么第一道 ...

  3. 浏览器js调试

    经常忘记,还是需要记录一下啊 右键,检查元素 在元素DOM节点右击,复制CSS选择器 function sleep (time) { return new Promise((resolve) => ...

  4. 驳"一切不谈考核的管理都是扯淡"

    一.引子 以我个人的从业经验认为,研发人员的量化考核,始终是一个世界难题.正巧不久前在园子里看到了"一切不谈考核的管理都是扯淡!"一文(下面简称为"扯淡"),该 ...

  5. 5-4 Seata 分布式事务管理

    下载Seata https://github.com/seata/seata/releases https://github.com/seata/seata/releases/download/v1. ...

  6. 使用 Abp.Zero 搭建第三方登录模块(三):网页端开发

    ​简短回顾一下网页端的流程,总的来说网页端的职责有三: 生成一个随机字符作为鉴权会话的临时Token, 生成一个小程序码, Token作为参数固化于小程序码当中 监控整个鉴权过程状态,一旦状态变为AU ...

  7. Hippo4J v1.3.1 发布,增加 Netty 监控上报、SpringCloud Hystrix 线程池监控等特性

    文章首发在公众号(龙台的技术笔记),之后同步到博客园和个人网站:xiaomage.info Hippo4J v1.3.1 正式发布,本次发布增加了 Netty 上传动态线程池监控数据.适配 Hystr ...

  8. 【黄啊码】MySQL入门—3、我用select *,老板直接赶我坐火车回家去,买的还是站票

    大家好!我是黄啊码,学会了DDL语句了吗?那我们今天就来学习一下基本的查询语法,我见过很多外包机构的程序员都是万物皆可select *,然后项目跑了一段时间就基本跑不动了,问就回答:服务器配置不够,加 ...

  9. 关于奇妙的 Fibonacci 的一些说明

    奇妙的 Fibonacci,多次模拟赛中出现 同时也是 BZOJ 2813 一 Fibonacci 的 GCD 如果 \(F\) 是 Fibonacci 数列,那么众所周知的有 \(\gcd(F_i, ...

  10. 丽泽普及2022交流赛day14

    目录 A 题面 题解 B 题面 题解 C 题面 题解 D 题面 题解 A 题面 一个 \(1\dots n\) 的排列 \(p\) 和一个 \(1\dots n-1\) 的排列 \(q\) 满足 对排 ...