在阿里云服务器上使用yum安装mysql

版本:CentOS7、mysql8

第一步:获取mysql YUM源

进入mysql官网获取RPM包下载地址https://dev.mysql.com/downloads/repo/yum/

如图红色方框,右击复制链接地址

第二步:下载和安装mysql源

先下载mysql源安装包: wget 刚才复制的链接地址

例如: wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

如果提示wget命令找不到,先安装wget yum -y install wget 然后执行

安装mysql源 yum -y localinstall mysql57-community-release-el7-11.noarch.rpm 

需要注意的是localinstall后面的内容和前面链接里面的部分要对应

 

第三步:在线安装mysql

yum -y install mysql-community-server

第四步:启动mysql

systemctl start mysqld

第五步:设置开机自启动

systemctl enable mysqld

systemctl daemon-reload

mysql安装完成之后会生成一个默认密码在/var/log/mysqld.log文件中,要登录mysql,必须先获取这个密码。

获取文件:如果是打开文件后,在命令行下输入"/要搜索关键字"

如果是在没有打开文件的前提下就用命令:cat 文件名 | grep "关键字"

在这里就是:cat /var/log/mysqld.log | grep "password"

然后就可以查询出默认密码

查询出密码之后,接着登录mysql:mysql -u root -p

然后输入默认密码登录mysql

 

在登录mysql后紧接着需要做的就是修改mysql的密码,修改密码的方式有三种分别是

第一种:set password = password('要修改成的密码');

第二种:UPDATE user SET Password = 'new-password' WHERE User = '要修改成的密码';

第三种:ALTER USER 'root'@'localhost' IDENTIFIED BY '要修改成的密码';

其实在在的修改密码的方式并不是这几种,在不同的版本也会有不同的修改方法。

 

刷新:flush privileges ;

 

还有一种忘记密码后修改密码的方法

第一步:vim /etc/my.cnf

第二步:配置文件中添加skip-grant-tables后保存退出

第三步:重启mysql:systemctl restart mysql

通过上面三步就可以进行免密登录,登录之后可以通过第二种修改密码的方式修改密码,在修改后密码之后,继续进入文件my.cnf中,将之前加入的配置内容删除,然后重新启动mysql即可。

 

在修改mysql的密码的时候,有可能会出现密码不够复杂的提示,这种时候需要修改mysql的策略,不同的mysql版本修改方法稍有不用

mysql5.7的修改通过下面两条命令即可

set global validate_password_policy=0;

set global validate_password_length=1;

修改完策略之后,使用上面第二种方法修改密码即可;

mysql8版本的mysql可能不能成功,可能会提醒你'validate_password_policy' 变量不存在。解决方式

先修改一种满足策略的密码。例如Root_12root

在密码修改后可以查看validate_password密码验证插件是否安装

SHOW VARIABLES LIKE 'validate_password%';

通过查看 MySQL5.7 和 MySQL8.0 密码验证插件对比,可知两个版本中,变量名不一样。(*_password_policy 和 *_password.policy ),这个也是 问题原因所在。

mysql8调整密码验证规则:

set global validate_password.policy=0;

set global validate_password.length=1;

 

mysql开启远程连接

登录mysql数据库之后:use mysql;

第一步:查看当前用户select user,host from user;

第二步:允许root用户远程访问

GRANT ALL ON *.* TO 'root'@'%';

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的数据库密码';

其中

root是用户名 mysql默认的是root password是密码自己设置 %表示任意主机,也可以指定ip地址

如果出现错误

那么将mysql数据库user表里的root用户的host改成% 使用命令

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

再次执行代码

GRANT ALL ON *.* TO 'root'@'%'; ALTER USER 'root'@'%' IDENTIFIED WITH mysql\_native\_password BY '你的数据库密码';

之后使用远程连接即可