参考文章:https://www.cnblogs.com/wlwl/p/9686809.html
补充:下载:
打开 连接工具,我用的是 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