Linux服务器安装Mysql8.0数据库

之前写过一篇文章记录linux服务器安装mysql数据库,安装完之后发现mysql是5.0版本。自己本机的mysql是8.0版本,导出的.sql文件在mysql5.0上一直报错。所以再重装下mysql8.0版本。

采用的是下载.rpm文件的方式安装~

第一步:下载.rpm文件
https://dev.mysql.com/downloads/mysql/ 或者https://dev.mysql.com/downloads/file/?id=480720

下载.rpm文件的时候需要注意linux服务器的版本:
 输入lsb_release -a 查看linux版本

Linux服务器安装Mysql8.0数据库_第1张图片
Linux服务器安装Mysql8.0数据库_第2张图片

我下载的是mysql-8.0.13-1.el6.x86_64.rpm-bundle.tar
  8.0.13 :版本号
  el6    : 适用linux centos6系统
  x86_64 :x86_64位
  ========================================================
  一开始不懂..下载的mysql-8.0.17-1.el8.x86_64.rpm-bundle.tar,提示各种版本过低..折腾了半天装不上。

第二步:卸载原Mysql

rpm -qa | grep mysql   //检测当前系统是否安装mysql,有的话,要先把原来的卸载。

在这里插入图片描述

# rpm -e mysql-libs-5.1.73-8.el6_8.x86_64  //普通删除模式,mysql名称要写全,和上面查到的名称一致
# rpm -e --nodeps mysql-libs-5.1.73-8.el6_8.x86_64// 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

第三步:安装Mysql

用WinSCP传入linux服务器

tar -xvf mysql-8.0.13-1.el6.x86_64.rpm-bundle.tar   //解压

里面文件如下:
Linux服务器安装Mysql8.0数据库_第3张图片
安装顺序如下:
rpm -ivh mysql-community-common-8.0.13-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.13-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.13-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-8.0.13-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-8.0.13-1.el6.x86_64.rpm

第四步:配置mysql

安装完mysql8.0之后先不要启动,配置mysql的忽略大小写,启动之后在设置的话会非常麻烦。

#vim /etc/my.cnf  //windows下修改的是my.ini

在[mysqld]后面任意一行添加lower_case_table_names=1,如图:

Linux服务器安装Mysql8.0数据库_第4张图片
启动mysql

service mysqld start    //启动mysql
service mysqld status   //查看mysql启动状态
chkconfig mysqld on   //设置mysql开机自启动

登录mysql:

网上查资料说的是获取随机密码第一次登录,自己没有验证,我是通过修改/etc/my.cnf 添加skip-grant-tables跳过验证登录。
将两种都贴上:

1.随机密码登录:

grep 'temporary password' /var/log/mysqld.log  //生成随机密码 
mysql -uroot -p   //使用随机密码登陆
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';    //修改密码
//(这里直接修改为123456会提示密码太弱[非要改为123456,先要修改mysql8的密码规则],见下文~

2.修改/etc/my.cnf 添加skip-grant-tables跳过验证登录

vim /etc/my.cnf 		//编辑my.cnf文件
在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,保存退出。
mysql -uroot -p   //登录,不需要密码
登录后:
use mysql;  //切换到mysql库
select host,user,authentication_string from user;  //可以查看root用户的host及密码(加密后)

************mysql8.0去除了password字段,改为authentication_string ******************

update user set authentication_string = '' where user = 'root';  
//将密码置空,这样my.cnf去掉skip-grant-tables依旧可以空密码登录。
vim /etc/my.cnf 
//编辑my.cnf文件  去掉之前添加的“skip-grant-tables”,依旧可以空密码登录

第二种方法比较麻烦,第一种能够登录的话推荐第一种。

修改root用户密码

mysql8.0使用了新的密码策略。想使用类似’123456’的密码需要修改密码策略~

1.查看mysql的密码策略

show variables like 'validate_password%';

Linux服务器安装Mysql8.0数据库_第5张图片
validate_password.check_user_name 用户名检测
validate_password.dictionary_file 指定密码验证的文件路径;
validate_password.length 固定密码的总长度;
validate_password.mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
validate_password.number_count 整个密码中至少要包含阿拉伯数字的个数;
validate_password.policy 指定密码的强度验证等级,默认为 MEDIUM;
关于 validate_password_policy 的取值:
0/LOW:只验证长度;
1/MEDIUM:验证长度、数字、大小写、特殊字符;
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
validate_password.special_char_count 整个密码中至少要包含特殊字符的个数;

set global validate_password.policy=LOW;  //设置密码强度为LOW
//其他条件设置语句大体相同、
我设置的密码为root,密码策略修改完如上图

策略修改完后,修改密码:

 alter user 'root'@'localhost' identified by 'root';     //修改密码为root,提示修改成功~

第五步:Navicat登录Mysql数据库

启动Navicat 新建连接…报错,提示Host xxxxx is not allowed to connect to this MySql server
Linux服务器安装Mysql8.0数据库_第6张图片

解决:1.打开终端,进入mysql
	 2.use mysql; //选中mysql中的 ·mysql· 表 
	 3.update user set host = '%' where user = 'root'; //更新权限,修改为允许全部连接
	 4.select host, user from user; //查看是否修改成功
	 5.flush privileges;  //刷新表的权限(或者重启一次mysql)

执行第三步的时候有可能遇到‘Duplicate entry ‘%-root’ for key ‘PRIMARY’’的问题。说明已有相应的user=‘root’,host=’%'数据,直接执行步骤4.5即可。

再次验证:成功

Linux服务器安装Mysql8.0数据库_第7张图片

另:mysql8.0与mysql5.0相比

	1.mysql库user表 password字段去掉,变为authentication_string
	2.密码策略改变,设置简单密码需要修改密码策略
	3.密码加密规则改变,
	 在mysql8.0之前的版本使用的密码加密规则是mysql_native_password,但是在mysql8则是caching_sha2_password。
	 项目部署可能会出现
	 	Unable to load authentication plugin 'caching_sha2_password'
	 的错误,
	 可参考:https://blog.csdn.net/weixin_42954381/article/details/94458583
	 4.mysql8.0启动后修改my.cnf设置忽略大小写及设置后无法启动问题
	 可参考:https://blog.csdn.net/weixin_42954381/article/details/100523640

参考:
https://blog.csdn.net/mfkarj/article/details/83345225 Centos 6.5安装Mysql8
https://blog.csdn.net/hello_world_qwp/article/details/79551789
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

你可能感兴趣的:(MySQL)