centos7安装mysql8,设置密码,navicat远程连接

感谢这两位博主的文章,鄙人在此整合了下

https://blog.csdn.net/wangshuminjava/article/details/80876855

https://www.cnblogs.com/jjg0519/p/9034713.html

https://blog.csdn.net/why154285/article/details/81062689

 

一. 首先到mysql 的网站上载  mysql rpm包的合集

centos7安装mysql8,设置密码,navicat远程连接

我们选择免费的社区版 

 

 

 

centos7安装mysql8,设置密码,navicat远程连接

centos7安装mysql8,设置密码,navicat远程连接

 

下载完成之后解压   里面有很多mysql 的包,这们主要安装下面划红线的四个包就可以了,安装 的顺序也标出了

 

centos7安装mysql8,设置密码,navicat远程连接

注意:上图3和4的顺序互换下

 

在centos7下 rpm 安装以上包会报错,其报错信息如图

centos7安装mysql8,设置密码,navicat远程连接

首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安装mysql的步骤。

#列出所有被安装的rpm package 

rpm -qa | grep mariadb

centos7安装mysql8,设置密码,navicat远程连接

 

强制卸载 mariadb 软件包

centos7安装mysql8,设置密码,navicat远程连接

完成之后就可以安装了,在安装 mysql-server  服务端的时候又有报错

centos7安装mysql8,设置密码,navicat远程连接

 

这时就 yum install -y net-tools

再进得安装就好了

安装完成后可以  在  /etc/my.cnf  (mysql的配置文件)   /usr/bin  /usr/sbin/  中有相应的命令    数据库在 / var/lib/mysql 中,在my.cnf  可以查看到

 

下面是修改mysql数据库root用户密码

第一步:修改配置文件免密码登录mysql

 

  1. vim /etc/my.cnf  

 

1.2 在 [mysqld]最后加上如下语句 并保持退出文件;

 

  1. skip-grant-tables  

 

1.3 重启mysql服务:

 

  1. service mysqld restart  

第二步免密码登录到mysql上;直接在命令行上输入:

 

  1. mysql  
  2. //或者  
  3. mysql -u root -p   
  4. //password直接回车  

第三步: 给root用户重置密码;

3.1 首先查看当前root用户相关信息,在mysql数据库的user表中;

 

  1. select host, user, authentication_string, plugin from user;  

host: 允许用户登录的ip‘位置’%表示可以远程;

user:当前数据库的用户名;

authentication_string: 用户密码;在mysql 5.7.9以后废弃了password字段和password()函数;

plugin: 密码加密方式;

 

3.2 如果当前root用户authentication_string字段下有内容,先将其设置为空;

centos7安装mysql8,设置密码,navicat远程连接

  1. use mysql;  
  2. update user set authentication_string='' where user='root';  

3.3 退出mysql, 删除/etc/my.cnf文件最后的 skip-grant-tables 重启mysql服务;

3.4 使用root用户进行登录,因为上面设置了authentication_string为空,所以可以免密码登录;

  1. mysql -u root -p  
  2. passwrod:直接回车;  

3.5使用ALTER修改root用户密码;

 

  1. ALTER user 'root'@'localhost' IDENTIFIED BY 'Qian123#'  

至此修改成功; 重启mysql服务,重新使用用户名密码登录即可;

 

4. 一定不要采取如下形式该密码:

 

  1. use mysql;  
  2. update user set authentication_string="newpassword" where user="root";

这样会给user表中root用户的authentication_string字段下设置了newpassword值;

当再使用ALTER USER 'root'@'localhost' IDENTIFITED BY 'newpassword'时会报错的;

因为authentication_string字段下只能是mysql加密后的41位字符串密码;其他的会报格式错误;

*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE

 

 

navicat远程连接mysql设置如下;

 

一,先设置端口的防火墙

/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

二,修改数据库user表

1,登陆mysql:

mysql -uroot -p

password:

2,使用mysql库

use mysql

3,查询user表

select host,user from user wg=here user='root';

4,入宫host不是%,则修改

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

5,刷新权限

flush privileges;

三,mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,用navicat连接需要把用户密码登录的加密规则还原成mysql_native_password这种加密方式

alter user 'root'@'%' identified by 'password' password expire never;

 alter user 'root'@'%' identified with mysql_native_password by 'password';

 

 flush privileges;再次刷新一下权限配置。

 

总结:其实后面两步应该可以在设置密码的时候就给修改了。即将root密码修改的同时,将host设为%,plugin设为mysql_native_password。没有试过,有兴趣的可以尝试下。

 

分享一些技术学习视频教程网盘资源 https://pan.baidu.com/s/13dbR69NLIEyP1tQyRTl4xw

上一篇:mysql8忘记密码怎么办


下一篇:Linux安装mysql8