参考文章:https://www.cnblogs.com/wlwl/p/9686809.html

补充:下载:

  • Yum Repository ——> MySQL Yum Repository(https://dev.mysql.com/downloads/) ——> Download ——> No thanks, just start my download. ——>右键,选择“复制链接地址”

 

 

打开 连接工具,我用的是 MobaXterm_Personal_12.1 (官网下载地址:https://moba.en.softonic.com/

连接到 ecs,然后移除 默认的 mariadb 数据库: yum remove mariadb-libs.x86_64

 

---------------------------------------------------------------------------------------------------------------------------------------

注意:

如果是Centos 7,请使用 wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

然后执行:

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

不要使用上面复制的链接,会报以下错误、提示,原因:该版本mysql 需要Centos8、Mysql的GPG升级了,需要重新获取

 

---------------------------------------------------------------------------------------------------------------------------------------

 

然后 创建目录,我一般软件放在 /usr/local 下,然后进入目录,下载:wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

 

 

然后安装

红框中两个名字需要相同,

输入完 yum localinstall my 后可以按 tab 键即可自动补全 

 

会出现一次这种选项,输入 y即可 

安装:yum install mysql-community-server

出现这种的即表示安装成功:

 

然后启动:service mysqld start  查看状态 service mysqld status 

 

 

出现这种即表示 启动成功:

 

 

查看初始密码: cat /var/log/mysqld.log | grep password

如果没有,则先删除原来安装过的残留

rm -rf /var/lib/mysql

重启 mysql

service mysqld restart

然后执行  cat /var/log/mysqld.log | grep password

登录:mysql -u root -p

【由于输入的密码不显示,所以不用担心,该咋输咋输】

出现这种即表示登录成功:

 

 

然后修改全局变量、密码

 

set global validate_password.policy=0;

set global validate_password.length=1;

 

关闭防火墙

systemctl stop firewalld.service

开启防火墙

systemctl start firewalld.service

将3306 端口加入规则

firewall-cmd --zone=public --add-port=3306/tcp --permanent

防火墙重新加载拦截规则

 firewall-cmd --reload

 

设置 mysql 开机启动:systemctl enable mysqld      systemctl daemon-reload

设置 编码:

vi  /etc/my.cnf,然后 按 i 键,进入编辑模式:

    [mysqld]

    character-set-server=utf8 

    [client]

    default-character-set=utf8 

    [mysql]

    default-character-set=utf8

 

修改规则: update user set host= '%' where user = 'root'; 

修改加密方式:update user set plugin='mysql_native_password' where user ='root';

设置远程连接密码:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'A123456!'; 

 FLUSH PRIVILEGES;

 

重启一下mysql 

然后就可以远程连接了

 

【重置密码】

  1. 开启免密码登陆 修改my.cnf文件   默认在/etc/my.cnf。

    vim /etc/my.cnf         在【mysqld】模块下面添加:skip-grant-tables 保存退出。

   2. 重启服务,使配置生效 。     service mysqld restart

   3. 登陆     mysql -u root -p   //不输入密码直接敲回车键

   4. 选择数据库  use mysql      把密码置空(因为免密登陆时不能直接修改密码)  

    update user set authentication_string = '' where user = 'root';

   5. 退出   quit         把/etc/my.cnf免密删掉。     重启服务    service mysqld restart

   6. 登陆   mysql -u root -p   //直接敲回车键,因为刚刚置空密码了。

   7. 和上面修改密码的步骤一样,重复一遍就好了~

 

如果遇到 too many connection errors 后,重启了数据库,但还是 报 message from server: "Host 'ip' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'" 时,使用 mysql -u用户名 -P 端口 -p 密码 登录一下数据库,然后执行 flush hosts;  即可

原因:同一个ip在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)中断的数据库连接而导致的阻塞;

 

参考:https://www.cnblogs.com/susuyu/archive/2013/05/28/3104249.html

 

ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost' 解决:https://blog.csdn.net/weixin_39939012/article/details/103013022

 

posted on 2019-09-03 09:34  文泽9527  阅读(1218)  评论(0编辑  收藏  举报