CentOS7下安装mysql5.7

远程服务器

数据库重启(启动)、查看状态 、停止 命令

数据库重启(启动):service mysqld restart

查看状态:service mysqld status

停止:service mysqld stop

参考
Centos7 完全卸载mysql - 简书 (jianshu.com)

(48条消息) CentOS7下安装mysql5.7(亲测完成)_ic_xcc的博客-CSDN博客_centos7 安装 mysql5.7

(60条消息) CentOS7 彻底卸载 MySQL5.7 (保姆级)_centos7 卸载mysql5.7_是 The Lin 呀的博客-CSDN博客

[腾讯云linux服务器安装mysql,并实现远程访问 - 腾讯云开发者社区-腾讯云 (tencent.com)](https://cloud.tencent.com/developer/article/1496725#:~:text=二,下载并安装mysql 1 1,检查服务器是否已经安装过mysqlyum list installed mysql*出现下图所示,代表没有安装过 shell> yum,2 2%2C安装mysql源 3 3%2C下载mysql5.7 rpm源 4 4安装下载好的rpm包 更多项目)

(60条消息) 【云服务器配置安全组】- 关于mysql配置远程访问权限之后Navicat仍然不能远程连接的问题_1 + 1=王的博客-CSDN博客

mysql登录报错:ERROR 1045 (28000): Access denied for user ‘root‘@’localhost’ (using password: YES) - 向前走。 - 博客园 (cnblogs.com)

Centos7解决MySQL登录ERROR 1045 (28000): Access denied for user ‘‘@‘localhost‘ (using - 腾讯云开发者社区-腾讯云 (tencent.com)

(60条消息) Linux CentOS环境下软件到底安装在哪里?/opt or /usr or /usr/local_涛哥谈风控_的博客-CSDN博客_centos opt

[Linux下如何彻底删除(卸载)MySQL? - 少年Dev - 博客园 (cnblogs.com)](https://www.cnblogs.com/yaodun55/p/16012919.html#:~:text=Linux下如何彻底删除(卸载)MySQL%3F 首先连接操作系统,切换到root用户。,如果是使用yum安装的mysql,使用如下命令进行卸载(不能确定使用何种方式安装的mysql情况下,按后续步骤一一进行处理即可): 使用rpm -qa|grep mysql命令来查看rpm方式安装的mysql,如果查询结果不为空,需要将这些rpm卸载掉。)

(47条消息) docker部署mysql 实现远程连接_眼沉沉的博客-CSDN博客_docker 连接mysql

一、首先如果之前有安装mysql

参考Centos7 完全卸载mysql - 简书 (jianshu.com)

1、需要先彻底卸载删除mysql

rpm -qa | grep mysql  或者 yum list installed | grep mysql

mysql-community-common-5.7.41-1.el7.x86_64
mysql-community-libs-5.7.41-1.el7.x86_64
mysql57-community-release-el7-8.noarch
mysql-community-client-5.7.41-1.el7.x86_64
mysql-community-server-5.7.41-1.el7.x86_64

或者 yum list installed | grep mysql

mysql-community-client.x86_64 5.7.41-1.el7 @mysql57-community
mysql-community-common.x86_64 5.7.41-1.el7 @mysql57-community
mysql-community-libs.x86_64 5.7.41-1.el7 @mysql57-community
mysql-community-server.x86_64 5.7.41-1.el7 @mysql57-community
mysql57-community-release.noarch el7-8 installed

2、开始卸载

yum remove mysql-community-common-5.7.41-1.el7.x86_64
yum remove mysql-community-libs-5.7.41-1.el7.x86_64
yum remove mysql57-community-release-el7-8.noarch
yum remove mysql-community-client-5.7.41-1.el7.x86_64
yum remove mysql-community-server-5.7.41-1.el7.x86_64

或者

yum remove mysql-community-client.x86_64

yum remove mysql-community-common.x86_64

yum remove mysql57-community-release.noarch

yum remove mysql-community-server.x86_64

yum remove mysql-community-libs.x86_64

3、查找mysql相关目录并删除

find / -name mysql

/usr/share/mysql

/var/lib/mysql
/var/lib/mysql/mysql

(60条消息) rm -rf —— 删库跑路教程详解_Web Boy的博客-CSDN博客_rm -rf

4、删除相关目录

rm -rf /usr/share/mysql
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql

5、删除/etc/my.cnf

rm -rf /etc/my.cnf

6、删除/var/log/mysqld.log(如果不删除这个文件,会导致新安装的mysql无法生存新密码,导致无法登陆)

rm -rf /var/log/mysqld.log

二、安装mysql

(60条消息) CentOS7下安装mysql5.7(亲测完成)_ic_xcc的博客-CSDN博客_centos7 安装 mysql5.7

一、环境地址新建、清除旧安装包
进入到目录 /usr/local/ 中
cd /usr/local/

创建目录 /usr/local/tools,如果有则忽略
mkdir -p tools

创建 /usr/local/mysql 目录,如果已存在则忽略

进入到目录 /usr/local/tools 中
cd tools/

查看系统中是否已安装 MySQL 服务
rpm -qa | grep mysql

yum list installed | grep mysql
如果已安装则删除 MySQL 及其依赖的包
yum -y remove mysql-libs.x86_64

三、安装YUM
下载 mysql57-community-release-el7-8.noarch.rpm 的 YUM 源

下载命令:
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

然后进行repo的安装:
rpm -ivh mysql57-community-release-el7-8.noarch.rpm

四、使用yum命令即可完成安装
注意:必须进入到 /etc/yum.repos.d/目录后再执行以下脚本

安装命令:
yum install mysql-server

问题一:如果遇到安装不成功,提示:The GPG keys listed for the “MySQL 5.7 Community Server” repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.

解决:yum添加–nogpgcheck
原因
软件开发商在释出 RPM 文件时,会在其中添加数字签名,并释出用于验证数字签名的公钥。使用 rpm 安装软件时,rpm 会首先根据系统中已有的公钥去验证 RPM 文件的数字签名。gpg keys 就是公钥。

办法
yum安装的时候就会校验软件包是否是官方发布的。当然可以给yum添加–nogpgcheck来强制安装,如下命令即可

yum install mysql-server –nogpgcheck

所以在安装的时候会比对已有的公钥,发现不正确,报错了

  1. 启动msyql:

systemctl start mysqld #启动MySQL

获取安装时的临时密码(在第一次登录时就是用这个密码):
grep ‘temporary password’ /var/log/mysqld.log

五、登录mysql

mysql -u root -p

然后输入密码(刚刚获取的临时密码)

问题二:登录报错ERROR 1045
倘若获取临时密码,登录报错ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

解决:修改my.cnf文件
首先,停止MySQL服务
service mysqld stop

既然是密码错误,那么就先跳过密码验证的步骤,打开my.cnf文件,更改不启动授权表
vim /etc/my.cnf

然后,搜索mysqld,找到[mysqld],在最后加上添加一行语句:

/mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)。

注:windows下修改的是my.ini。

在 [mysqld] 底下添加语句:

skip-grant-tables

(注:skip-grant-tables:不启动grant-tables授权表,作为启动参数的作用:MYSQL服务器不加载权限判断,任何用户都能访问数据库)

这是用来跳过密码验证的,添加之后保存退出。

并且重新重启mysql

问题三:登录报错ERROR 1820 You must reset your password using ALTER USER statement before executing this statement.
输入上面得到的密码进入,用该密码登录后,必须马上修改新的密码,不然会报如上述错误:

解决:重新设置密码
如果你想要设置一个简单的测试密码的话,比如设置为123456,会提示这个错误,报错的意思就是你的密码不符合要求:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这个其实与validate_password_policy的值有关。
validate_password_policy有以下取值:
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
必须修改两个全局参数:

首先,修改validate_password_policy参数的值
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

validate_password_length(密码长度)参数默认为8,我们修改为1
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

完成之后再次执行修改密码语句即可成功
mysql> alter user ‘root‘@’localhost’ identified by ‘654321’;
Query OK, 0 rows affected (0.00 sec)

(60条消息) ERROR 1193 (HY000): Unknown system variable ‘validate_password_policy‘_error 1193 (hy000): unknown system variable ‘valid_GOD_WAR的博客-CSDN博客

0、查看mysql是否启动

service mysqld status

  1. 重新启动MySQL服务
systemctl start mysqld #启动MySQL
1
  1. 进入MySQL
    出现密码输入时,不用输入直接按回车,就可以不用密码就能登录
mysql -u root -p
密码直接回车
  1. mysql连接成功,修改密码
  • 5.1、看当前所有数据库:show databases;
  • 5.2、进入mysql数据库:use mysql;
  • 5.3、查看mysql数据库中所有的表:show tables;

5.4、查看user表下的角色和密码,
注意:5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string

select Host,User,authentication_string from user;

说明: % 代表任意的客户端,可替换成具体IP地址。

  • 5.5、修改密码
update user set authentication_string="Hjx350622",Host="%" where User="root";

密码修改完毕

修改完密码还要进行这一步

根据个人需求,设置数据库用户在所有ip下以及在本地可访问,以下用root用户做演示

为避免麻烦,再次设置远程访问

grant all privileges on . to root@”%” identified by “你的密码”;

grant all privileges on . to root@”localhost” identified by “你的密码”;

flush privileges;

回到vim /etc/my.cnf

将 内容skip-grant-tables 注释掉 然后重启mysql; flush privileges;

修改my.cnf,重新启动mysql服务器以使新设置生效。

这是免密码登录的去掉,这样就可以防止别人访问数据库。

[(60条消息) mysql设置用户密码过期时间_现实、太残忍的博客-CSDN博客_default_password_lifetime](https://blog.csdn.net/sumengnan/article/details/114098498#:~:text=设置某用户的 密码过期时间 1 %23密码 90 天过期: 2 ALTER,’ testuser ‘%40’ localhost ‘ PASSWORD EXPIRE DEFAULT%3B)

六、navicat测试连接成功

  • 打开navicat配置服务器的主机、端口、用户名、密码(刚刚修改过的)测试链接成功
  • 注意要去腾讯云安全组查看有没有开放3306端口
  • 还有防火墙,是否有开3306端口
  • 最后才连接成功

防火墙设置
查看防火墙状态
systemctl status firewalld
开启防火墙
systemctl start firewalld
关闭防火墙
systemctl stop firewalld
重启防火墙
service firewalld start

若遇到无法开启 先用:
systemctl unmask firewalld.service
然后:
systemctl start firewalld.service
查询指定端口是否已开
firewall-cmd –query-port=666/tcp
1
开放端口保存
添加指定需要开放的端口:
firewall-cmd –add-port=123/tcp –permanent
重载入添加的端口:
firewall-cmd –reload
查询指定端口是否开启成功:
firewall-cmd –query-port=123/tcp
移除端口
移除指定端口:
firewall-cmd –permanent –remove-port=123/tcp
查询开放的防火墙列表
firewall-cmd –zone=public –list-ports
若开放了端口还是连接不上你想要的端口,
注意:有可能是你阿里云自带安全组策略限制的原因,这种情况需要在阿里云官方云服务器管理控制台手动开放。

注意:如果电脑重启了,查看一下防火墙是否已经打开,没有打开访问不到mysql ,打开之后并且有设置端口,安全组也设置端口后就可以访问

MySQL错误:Can’t connect to MySQL server (10060) 解决方案 - Felix-Zhang - 博客园 (cnblogs.com)