最近在腾讯云上安装MySQL,以及使用navicat连接MySQL时遇到了一些问题,查找的资料都很零散,所以把它整理到一篇文章里面去
rpm -qa | grep mysql
rpm -e 文件名 --nodeps //加nodeps为强制删除
find / -name mysql //进一步查询所有mysql相关的文件和文件夹
rm -rf 文件名 //进一步删除
// 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 来解决,然后重新下载。
yum -y install mysql57-community-release-el7-10.noarch.rpm
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
//启动服务
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连接数据库
#查看防火墙状态(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
#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就可以了~