转自:https://www.jb51.net/article/146677.htm
转自:
准备工作:
mysql8.0 rpm文件
测试工具(比如 idea的database工具)
安装步骤:
1. 下载mysql的repo源,下载地址:
进入Linux系统,输入指令:
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
2.安装mysql-community-release-el7-5.noarch.rpm包
输入指令:sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm
安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
3.安装mysql
输入指令:sudo yum install mysql-server
根据提示安装就可以了,不过安装完成后没有密码,需要重置密码
4. 登录时有可能报这样的错:ERROR2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:
输入指令:mysql -u root
输入指令:sudo chown -R root:root /var/lib/mysql
输入指令:service mysqld restart
等重新完成后在输入mysql -u root 就可以看到如下,但是现在又提醒密码错误的信息,输入指令获取随机密码
生成随机密码
输入指令:grep 'temporary password' /var/log/mysqld.log
当我去查询用户的时候报这个错误:You must reset your password using ALTER USER statement beforeexecuting this statement
大致意思是说:在执行此语句之前,必须使用ALTE USER语句重设密码。
然后我执行修改密码的操作:alter user user() identified by "rootA@123";
(当密码简单时)又报:Your password does not satisfy the current policy requirements
大致意思是说:您的密码不符合当前的策略要求(密码必须包含数字、字母大小写,特殊字符rootA@123,满足)。
注意:如果只想设置简单密码需要修改两个全局参数:
mysql>
set
globalvalidate_password_policy=0;
mysql>
set
globalvalidate_password_length=1;
(这里我没过试,不知道是否可用,我用的复杂密码)
二、远程连接
1、 改表发。
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改成"%"
1 2 3 |
|
2、授权法
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
1 2 3 |
|
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
这里我使用了改表发,执行授权法一直报错,我不知道是不是因为我MySQL8.0的原因。
然后重启服务:service mysqld restart
这里我是使用的idea自带的一个database工具进行测试连接,连接成功。
到这里,整个MySQL8.0就安装完成了。
二、远程连接,转自:https://blog.csdn.net/lizy928/article/details/82531749
访问成功,但是在利用SQLyog工具连接出现了问题
出现这种现象的原因有两个,一个是当前用户被mysql服务器拒绝,另外一个原因是3306端口被被防火墙禁掉,无法连接到该端口。解决方法如下:
1,设置所有主机都可以访问,关闭防火墙
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
FLUSH PRIVILEGES;
mysql8.0无法给用户授权或提示You are not allowed to create a user with GRANT的问题
提示意思是不能用grant创建用户,mysql8.0以前的版本可以使用grant在授权的时候隐式的创建用户,8.0以后已经不支持,所以必须先创建用户,然后再授权,命令如下:
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'Hadoop3!'; Query OK, 0 rows affected (0.04 sec) mysql> grant all privileges on *.* to 'root'@'%'; Query OK, 0 rows affected (0.03 sec)
另外,如果远程连接的时候报plugin caching_sha2_password could not be loaded这个错误,可以尝试修改密码加密插件:
mysql> alter user 'root'@'%' identified with mysql_native_password by 'Hadoop3!';