yum命令也将依赖删除,中途[Y/N?] 输入y同意继续卸载;
相互rpm包依赖就按照依赖顺序,先后安装;在安装mysql-community-devel-8.0.26xxxxx.rpm时,会出现pkgconfig(openssl)被需要,执行# yum install openssl-devel -y 安装即可;
还有就是在安装mysql-community-test-8.0.26xxxxxx.rpm时,需要
perl(Data::Dumper) 被 mysql-community-test-8.0.26-1.el7.x86_64 需要
perl(JSON) 被 mysql-community-test-8.0.26-1.el7.x86_64 需要
perl(Test::More) 被 mysql-community-test-8.0.26-1.el7.x86_64 需要
依次执行:
yum install perl-Data-Dumper -y
yum install perl-JSON -y
yum intall perl-Test-Simple -y
即可将九个rpm包全部安装完毕;
mysql目录内容被初始化后,具有了内容.
修改/var/lib/mysql的访问权限:
启动mysql服务
可以顺便设置一下,mysql服务开机自启动,不用每次开机都要执行systemctl start mysqld.service.
mysql -uroot -p
password: 密码复制粘贴
不修改密码,无法执行其他操作.这里需要修改密码; 命令:alter user ‘root’@‘localhost’ identified by ‘你自定义的新密码’;<修改user表,用户为root,可以访问的主机ip地址为localhost(本机)>
修改密码时如果你的密码过于简单,会报出如下错误:
依次执行以下命令:set global validate_password_policy=0;
set global validate_password_length=1;
set global validate_password_mixed_case_count=2;修改完密码规则
之后,就可以修改为简单密码了:alter user ‘root’@‘localhost’ identified by ‘你自定义的新密码’;
修改完毕,无需退出<退出测试一下新密码也可以>,立即可以操作数据库;
缘由:发现是mysql数据库root用户的远程访问没有权限,只能linux虚拟本机
发现,root用户的host为localhost可以访问,只能本机访问.(host列表指定允许用户登陆所使用的ip地址,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通192.168.1.1的客户端去访问,而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。这也就是为什么在开启远程连接的时候,大部分人都直接把Host改成%的缘故,为了省事…命令: update user set host=’%’ where user =‘root’;)
修改完root用户对应的可以访问的主机为%后,需要给与’root’@’%'这个用户赋予权限;如图:
还是密码太简单,在执行一遍上面的三句修改密码规则的命令之后,需要打开连接数据库权限,执行以下命令即可:
grant all privileges on . to ‘root’@’%’ identified by ‘简单新密码’ with grant option;
flush privlileges; 刷新权限
然后发现修改完host为%后还是报出上面图2003无法连接mysql服务器,后来退出mysql服务器,发现centos系统的防火墙是开启的(防火墙会影响网络连接登陆).如图
于是需要关闭防火墙(注意centos6版本的系统关闭防火墙的命令不太一样<略>):
连接远程服务器,还需要在服务器上开放对应的mysql端口号(设置对应安全组开放服务器端口号)
1.在/etc/my.cnf配置文件的末尾添加 skip-grant-tables
2.重启mysql:systemctl restart mysqld
3.直接登陆,mysql -uroot ;这里不需要密码
4.登陆进入mysql后,使用mysql数据库: use mysql
5.管理用户的是user表:
select host,user,authentication_string from user (查看一下用户密码)
将对应忘记密码的用户的authentication_string密码选项清空
update user set authentication_string=‘空占位符’ where user=‘root’;
6.退出mysql
7.重启mysql服务: systemctl restart mysqld
8.mysql -uroot 无密码登录到root模式。
9.查看root用户:
select host,user,host from user where user=‘root’;
10.更新root密码:
alter user 'root@‘localhost’ identified by ‘new_password’;(这里localhost是9中的host)
11.修改完密码,退出mysql,删除配置文件中的skip-grant-tables ;重启mysql服务器;
12.刷新权限:
flush privileges;
13.正常密码登陆
总结:先利用skip-grant-tables ,进入mysql,将mysql数据库中的user表中的用户对应的密码项authentication_string 改为空(必须先改为空,不然无法使用alter命令),然后退出,重启mysql.依旧利用skip-grant-tables 进入mysql,然后利用alter修改用户对应的密码(这经过重启的mysql,可以通过alter修改密码了),修改密码完毕,退出,取消skip-grant-tables的配置文件内容,进入mysql使用密码即可