CentOS7安装mysql8

一.安装前的清理工作

1.1.1 清理原有的mysql数据库;

使用以下命令查找出安装的mysql软件包和依赖包:

rpm -pa | grep mysql

显示结果如下:

1 mysql80-community-release-el7-1.noarch
2 mysql-community-server-8.0.11-1.el7.x86_64
3 mysql-community-common-8.0.11-1.el7.x86_64
4 mysql-community-libs-8.0.11-1.el7.x86_64
5 mysql-community-client-8.0.11-1.el7.x86_64

使用以下命令依次删除上面的程序

1
yum remove mysql-xxx-xxx-

删除mysql的配置文件,卸载不会自动删除配置文件,首先使用如下命令查找出所用的配置文件;

1
find / -name mysql

可能的显示结果如下:

复制代码
1 /etc/logrotate.d/mysql
2 /etc/selinux/targeted/active/modules/100/mysql
3 /etc/selinux/targeted/tmp/modules/100/mysql
4 /var/lib/mysql
5 /var/lib/mysql/mysql
6 /usr/bin/mysql
7 /usr/lib64/mysql
8 /usr/local/mysql
复制代码

根据需求使用以下命令 依次 对配置文件进行删除

1
rm -rf /var/lib/mysql

二.安装

1、yum仓库下载MySQL:sudo yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

2、yum安装MySQL:sudo yum install mysql-community-server

3、启动MySQL服务:sudo service mysqld start

4、检查MySQL服务状态:sudo service mysqld status

5、查看初始密码(如无内容直接跳过):sudo grep 'temporary password' /var/log/mysqld.log

6、本地MySQL客户端登录:mysql -uroot -p

7、输入密码为第5步查出的,如果没有,直接回车,然后输入命令  flush privileges

8、

MySQL5.6.6后增加了密码强度验证插件,所以当用户设置的密码不符合强度规则会提示出来该错误。

MySQL 8.0之前修改的方法和8.0的版本修改的方法是不一样的。

密码复杂程度有3种,值越低,复杂越低。0,1,2.--MySQl8.0 

 

密码规则查看:

show variables like 'validate_password%';

 

  如果此处报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

  意思就是密码过于简单,不符合密码设置的策略,看了一下有的人建议修改策略啥的,这里我get一个新的方法,直接将原来mysql的初始化密码修改一下后二位,因为他肯定满足密码策略,策略估计是大小写,字母特殊字符都必须含有

  alter user user() identified by “26SE>Z%UddNN”;
  ok,但是这里我的外网工具还是连接不上mysql,是host地址没有开放,需要设置一下,
  use mysql;
  update user set host = ‘%’ where user = ‘root’;
  flush privileges;A版权协议,转载请附上原文出处链接及本声明。

 

--设置复杂程度
set global validate_password.policy=0;

--设置密码长度
set global validate_password.length=6;


--以上执行成功后便可以修改密码了
alter user 'root'@'localhost' IDENTIFIED BY '123456'

 

远程连接时需要用此方式更新密码:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'newpassword'; #更新一下用户的密码 root用户密码为newpassword

 



注意:开始遇到问题是不输入密码或输错密码都能连接MySQL server,后来在修改允许阿里CentOS7允许远程操作MySQL数据库时,

才发现需要去调整 /etc/my.cnf文件,注释掉skip-grant-tables,重启MySQL服务(sudo service mysqld restart),quit退出连接,重新连接就需要输入密码了

后期如果忘记密码,可以通过-skip-grant-tables配置跳过输入密码登录MySQL,执行7、8步进行修改,如果‘root’@'localhost'变为'root'@'%',那么alter语句中的也要修改

9、配置MySQL允许外部访问:

                                           (1)首先设置阿里云安全组规则入方向,支持MySQL端口3306可访问(协议类型下拉菜单中有MySQL端口)

            (2)服务端登录MySQL,use mysql;然后执行select user,host from user可查看用户及对应允许访问主机

                然后执行update user set host = '%' where user ='root';允许任何外部可访问;再执行上一步查看命令,可比较结果

10、如此即可连接

补充:show global variables like 'port';可查看MySQL服务端口,如果看到的value为0,则说明没有使用密码登录,需要去修改my.cnf文件;

my.cnf文件也可以通过port=3306来指定MySQL服务端口,重启MySQL服务(service mysql restart)即可

11、java连接8.0及以上MySQL数据库使用新驱动

这个问题是在我用本地工具可以连同阿里云服务器上的MySQL,而本地用java怎么也连不上,偶然间点开工具测试连接的详细信息发现新的驱动,更改java对应驱动后,连接成功

posted @ 2020-05-06 10:22  憨憨青年  阅读(337)  评论(0编辑  收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css