Linux上怎么安装和连接MySQL及一些安装时的问题处理(超详细)

最近在腾讯云上安装MySQL,以及使用navicat连接MySQL时遇到了一些问题,查找的资料都很零散,所以把它整理到一篇文章里面去

1、先查看现在的服务器上是否安装mysql

rpm -qa | grep mysql        

1.1 已经安装过,如下图

 1.2 删除原来所有mysql相关文件

rpm -e 文件名 --nodeps      //加nodeps为强制删除

find / -name mysql                   //进一步查询所有mysql相关的文件和文件夹

rm -rf  文件名                          //进一步删除

2、下载官方 Mysql 包 

// 5.7版(以下以该版本演示)

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm   

// 8.0版

wget -i -c http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm

 一般情况下这一步不会出现什么问题,不过

如果安装有提示:Cannot write to ‘mysql57-community-release-el7-10.noarch.rpm’ (No such file or directory),那就是权限不够。

可以输入 su root 来解决,然后重新下载。

3、安装MySQL包

yum -y install mysql57-community-release-el7-10.noarch.rpm

 4、安装MySQL

yum -y install mysql-community-server

这里可能提示一个问题 “Failing package is: mysql-community-client-5.7.40-1.el7.x86_64,
 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql”,这里需要禁掉GPG验证检查。

// 禁掉GPG验证检查,重新安装

yum -y install mysql-community-server --nogpgcheck 

如果执行命令过程中还提示:Unable to find a match: mysql-community-server

则可以通过命令解决

yum module disable mysql

 5、启动MySQL服务

//启动服务

systemctl start mysqld.service

// 查看启动状态

service mysqld status

这种就是正常启动了 

 但是这里还可能遇到一个问题:

Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

可能每个人出现这个问题的原因不同,网上也有相关的帖子,但是我出现这个问题的原因是 3306的端口被占了。

 所以我们下面要做的就是杀掉这个进程

sudo killall mysqld

 然后再做下面的操作

搞定~ 

下面开始使用navicat连接数据库

 1、首先在防火墙中对mysql的端口3306放行

#查看防火墙状态(active (running)表示开启

[root@VM-12-13-centos ~]# systemctl status firewalld

# 查看放行端口(为空说明没有放行的)
[root@VM-12-13-centos ~]# firewall-cmd --list-ports

#放行mysql端口3306

[root@VM-12-13-centos ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent

#重启防火墙

[root@VM-12-13-centos ~]# systemctl restart firewalld

#如果平时自己使用服务器练手,也可以直接把服务器关了

[root@VM-12-13-centos ~]# systemctl stop firewalld

 

此时(也就是刚装好mysql),你可以用navicat去连接一下mysql,用户名:root,密码为空(这个是默认的密码),不过你还可以通过命令看一下是不是会生成临时密码

#查看临时密码

[root@VM-12-13-centos ~]# cat /var/log/mysqld.log

找到下面这行 A temporary password is generated for root@localhost: j%+a_k6wC9rF

临时密码就是这个:j%+a_k6wC9rF

 如果还是连不上,报这个错“'ip地址' is not allowed to connect to this MySQL server”,大概率就是连接权限有问题,你可以做如下操作~

如果想修改mysql密码的话,可以参考这篇文章(忘记密码也可以按照这个连接操作)Linux修改MySQL数据库密码_阿乐不会java的博客-CSDN博客_linux修改mysql密码

#重置密码时出现下面的报错时,先执行一下:flush privileges;这个命令

 mysql> SET PASSWORD FOR root@localhost = PASSWORD('root');

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

 2、设置mysql的连接权限

#linux中连接数据库,按要求输入密码

[root@VM-12-13-centos ~]# mysql -uroot -p

# 赋予root所有权限,此时第二个root就是你用navicat连接数据库的密码

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

# 刷新MySQL的系统权限相关表

mysql> flush privileges;

 可参考文档:Navicat无法连接mysql(腾讯云)_weixin_43940106的博客-CSDN博客_navicat连不上腾讯云

如果此时才操作时报了这个错误: “Your password does not satisfy the current policy requirements”

这个意思是说你现在设置的这个连接密码root,不符合mysql密码设置的安全策略,这时你要么根据策略要求改密码,要么改密码策略,可以参考下面这两篇文章,可以教你查看当前密码策略和改变密码策略。

Your password does not satisfy the current policy requirements_一尘在心的博客-CSDN博客

Your password does not satisfy the current policy requirements解决办法_luffy5459的博客-CSDN博客

 基本上弄完以上的再去用navicat连接mysql就可以了~

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值