失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > linux服务器安装mysql数据库并通过本地Navicat连接访问远程mysq数据库

linux服务器安装mysql数据库并通过本地Navicat连接访问远程mysq数据库

时间:2020-10-03 14:05:03

相关推荐

linux服务器安装mysql数据库并通过本地Navicat连接访问远程mysq数据库

之前因为项目需要,所以自己在linux服务器上安装了mysql数据库,但是自己在安装mysql数据库的时候也是遇到了很多的问题,所以特此在本博客中介绍一下如何在linux服务器上进行mysql数据库的安装。

在我安装mysql数据库的过程中,参考了这篇文章。centos7下安装mysql5.7(rpm)

我最开始是使用mysql的tar包进行mysql数据库的安装,但是安装过程中出现了很多莫名其妙的问题,果断放弃,然后使用mysql的rpm包进行mysql数据库的安装,最终也是成功安装了。安装步骤大致如下:

1、检查linux服务器是否已经安装了mysql数据库

rpm -qa | grep mysql

注意: 我想请大家注意一点就是,从linux的系统发行版本Centos7之后,linux服务器默认安装了mariadb数据库,所以大家在安装mysql数据库之前需要首先把系统自带的mariadb数据库卸载了,否则可能会影响后续mysql数据库的安装。比如可能出现下图所示的安装错误,

(错误信息即为,error: Failed dependencies:

mysql-community-libs(x86-64) >= 8.0.0 is needed by mysql-community-client-8.0.11-1.el7.x86_64

mariadb is obsoleted by mysql-community-client-8.0.11-1.el7.x86_64)

所以这就可以看出来,linux服务器自带的mariadb数据库影响了mysql数据库的安装。

查看自己linux服务器的内核版本信息

cat /etc/redhat-release

如果大家的linux服务器版本较高,使用命令rpm -qa | grep mariadb可以看到与mariadb数据库相关的所有rpm package信息,比如我自己服务器上的显示信息为:

为了后续mysql数据库的成功安装,需要将mariadb数据库的相关rpm包进行卸载,卸载命令为(卸载命令中的xxxx表示大家各自linux服务器上的rpm包的版本信息):

rpm -e mariadb-xxxxx

使用上述命令将rpm -qa | grep mariadb所显示的rpm包以此进行卸载即可,但是大家在卸载的时候可能会遇到问题,比如,

报错信息即为:

error: Failed dependencies:

libmysqlclient.so.18()(64bit) is needed by (installed) postfix-2:2.10.1-7.0.1.el7.centos.x86_64

libmysqlclient.so.18()(64bit) is needed by (installed) mariadb-devel-1:5.5.65-1.el7.x86_64

libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) postfix-2:2.10.1-7.0.1.el7.centos.x86_64

mariadb-libs(x86-64) = 1:5.5.65-1.el7 is needed by (installed) mariadb-devel-1:5.5.65-1.el7.x86_64

mariadb-libs(x86-64) = 1:5.5.65-1.el7 is needed by (installed) mariadb-1:5.5.65-1.el7.x86_64

这里报错的意思是,目前我所要删除的rpm与其他未删除的rpm包之间存在依赖,所以此处的删除操作失败。

解决方案: 使用强制删除命令进行rpm包的删除,

rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64

注意: 此处的删除命令rpm -e --nodeps 后大家注意填写自己linux服务器上的与mariadb数据库有关的rmp包名,然后就可以进行rpm包的删除了。

可以看到,此时即可以完成该rpm包的卸载删除,注意依次把剩余的几个rpm包进行删除。

这样我们就完成了linux服务器自带的mariadb数据库的完全卸载,接下来我们就可以进行mysql数据库的安装了。

2、下载安装mysql数据库所需的rpm安装包

在文章的最开始我已经介绍了接下来我将使用rpm包进行mysql数据库的安装。

首先我们需要了解自己linux服务器的操作系统版本,比如我的linux服务器操作系统是Red Hat版本的,然后大家需要到mysql官方下载地址根据自己linux服务器的操作系统选择mysql安装包,比如我所用的mysql安装包的下载地址为

/archives/community/

大家可以选择适合自己服务器的mysql安装包进行下载,

比如我所需要下载的安装包即为,

需要将这四个rpm包下载下来,这是我们可以通过这几个包分别下载下来,然后再将这些rpm包传输到linux服务器上即可(mac用户可以使用Royal TSX进行本地与linux服务器之间的文件传输)。

此外,也可以使用命令wget在linux服务器上直接进行资源的下载。

#使用wget下载mysql-community-client-8.0.21-1.el7.x86_64.rpm安装包及其它的rpm包wget /archives/mysql-8.0/mysql-community-client-8.0.21-1.el7.x86_64.rpmwget /archives/mysql-8.0/mysql-community-libs-8.0.21-1.el7.x86_64.rpmwget /archives/mysql-8.0/mysql-community-server-8.0.21-1.el7.x86_64.rpmwget /archives/mysql-8.0/mysql-community-commmon-8.0.21-1.el7.x86_64.rpm

这样我们就把安装mysql数据库所需的rpm安装包全部下载好了。接下来我们就要进行mysql数据库的安装了。

3、安装mysql数据库

接下来我们就将刚才下载到linux服务器上的几个rpm安装包进行安装, 其中需要注意的一点就是不同rpm安装包之间的安装顺序,由于mysql的4个rpma安装包之间存在一定的依赖关系,所以要按照正确的安装顺序进行安装。正确的安装顺序是common→libs→client→server,基于我所下载的rpm安装包来看,正确的安装流程就是:

rpm -ivh mysql-community-commmon-8.0.21-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-8.0.21-1.el7.x86_64.rpmrpm -ivh mysql-community-client-8.0.21-1.el7.x86_64.rpmrpm -ivh mysql-community-server-8.0.21-1.el7.x86_64.rpm

这样就能够实现mysql数据库的正确安装。

注意: 如果说大家像我一样初次安装没有按照顺序安装rpm安装包(比如我第一次安装mysql数据库的时候没有注意几个rpm安装包的安装顺序),这个时候就会导致错误,

错误信息即为,error: Failed dependencies:

mysql-community-libs(x86-64) >= 8.0.0 is needed by mysql-community-client-8.0.11-1.el7.x86_64。

原因: 这里的报错信息就是说,在安装mysql-community-client-8.0.21-1.el7.x86_64.rpm的时候缺乏依赖(即mysql-community-libs-8.0.21-1.el7.x86_64.rpm)。

解决方案:这个时候我们就应该安装mysql-community-libs-8.0.21-1.el7.x86_64.rpm这个安装包。

这样的话mysql数据库应该就安装成功了,如果大家在安装mysql数据库过程中遇到了任何问题欢迎大家在评论区提出,言无不尽。

4、启动并使用mysql数据库

安装完了mysql数据库接下来我们就可以使用mysql数据库了,首先需要开启mysql数据库,

#启动mysql数据库服务systemctl start mysqld.service

注意: 大家在启动mysql数据库的时候要注意启动命令的编写,因为不同版本的mysql数据库的启动命令可能有所差异,如果该命令不行的话可以尝试一下service mysqld start命令。

mysql数据库服务启动之后,可以查看mysql数据库服务的状态信息,

#查看mysql数据库的状态systemctl status mysqld.service

如果大家服务器上的显示信息与下图一样,则说明mysql数据库服务已经成功启动了。

这样mysql数据库就启动成功了,通过ps -aux | grep 'mysql'可以看到mysql的服务进程已经启动了,其处于运行状态;除此之外,使用netstat -ntulp | grep 'mysql'可以看到mysql数据库服务的端口占用情况。

接下来我们尝试使用mysql数据库,由于mysql数据库安装好了之后默认会生成数据库用户root, 以及会生成root用户的登陆密码,通过命令grep 'temporary password' /var/log/mysqld.log即可查看root用户的默认登陆密码(注意保存,因为接下来会用到这个密码)。登陆mysql数据库的命令为,

#以root的身份登陆mysql数据库mysql -uroot -p

接下来需要输入密码,输入我们上面保存的root用户的密码,然后使用"回车键"进入mysql数据库即可,进入数据库使用show databases命令查看mysql中默认的数据库,然而出现报错,

报错信息即是: ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

原因: 使用默认的root用户及密码登陆mysql数据库后,需要修改root用户的初始密码才能正常使用数据库(大家注意初次设定mysql密码的时候,mysql的初始密码要符合一定的格式要求,具体的设定密码的格式要求为: mysql的初始登陆密码必须包含数字、大写或小写字母、特殊字符,并且密码的长度不少于8个字符)。

注意:mysql的初始密码没有按照标准格式进行设定的话会出现报错,

报错信息为"ERROR 1819 (HY000): Your password does not satisfy the current policy requirements",所以一定要遵循mysql所要求的密码格式。

解决方案: 按照mysql初始密码的设定要求,设定一个包含数字、大写或小写字母、特殊字符的并且长度>=8的密码,首先通过mysql -uroot -p命令登陆数据库然后进行密码的设定:

#大家可以自行设定密码,符合长度和格式的要求即可,比如我将密码设定为1199234/aalter user root@localhost identified by '1199234/a';

这样我们就可以完成root用户默认密码的更改,并且也可以通过show databases;命令查看mysql中默认创建的数据库(mysql默认创建4个数据库,千万不可以删除)等,mysql数据库可以正常使用了。

5、本地Navicat连接远程mysql数据库

我在初次使用本地Navicat连接远程linux服务器上的mysql数据库时,使用账号root+root用户密码+linux服务器的远程ip,这个时候突然报错(我其实挺意外的,因为我本地Navicat连接本地mysql数据库的时候就是这样操作的。)

报错:

具体情况就是,使用Navicat链接远程服务器上的mysql数据库报错,

Test Failed 1045 - Access denied for user ‘root’@‘localhost’(using password: YES)

原因:经过自己的一番探索发现,MySql-Server 出于安全方面考虑默认只允许本机(localhost, 127.0.0.1)来连接访问,这也就意味着只有在linux服务器上才能访问msyql数据库。但是我怎样设置才能使得本地Navicat能够访问远程msyql数据库呢?

解决方案:linux服务器授予mysql数据库的远程访问权限。mysql数据库的远程权限的授予命令为:

#大家注意命令中的root_passwordgrant all privileges on *.* to root@'%' identified by 'root_password';#如果大家linux服务器上mysql数据库root账户的密码为1199234/a, 则权限授予命令为grant all privileges on *.* to root@'%' identified by '1199234/a';

正当我觉得此时工作已经完成的时候,还是报错了,

错误信息就是, ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘identified by ‘1199234/a’’ at line 1

原因: mysql8.0版本已经不再使用grant all privileges on.to root@’%’ identified by ‘1199234/a’;语句为root用户授予mysql的远程访问权限,即这个mysql远程权限授予的命令已经过时了。

解决方案:

//mysql8.0授予root用户远程访问权限,大家注意使用自己mysql数据库root账户的密码替换命令中的root_passwordCREATE USER 'root'@'%' IDENTIFIED BY 'root_password';GRANT ALL ON *.* TO 'root'@'%';ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root_password';//上述3条命令按顺序执行完毕后,刷新权限FLUSH PRIVILEGES;

至此,linux服务器上的mysql数据库的远程访问权限授予已经实现了。

再次使用本地Navicat访问远程mysql数据库,测试连接后,能够成功连接。

至此我们已经实习了"linux服务器安装mysql数据库并通过本地Navicat连接访问远程mysq数据库",大家如果在安装过程中有任何问题都可以在评论区讨论交流,大家共同进步!

如果觉得《linux服务器安装mysql数据库并通过本地Navicat连接访问远程mysq数据库》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。