ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

如何连接虚拟机中的MYSQL

2021-06-29 18:29:28  阅读:252  来源: 互联网

标签:-- 虚拟机 MYSQL mysqld mysql 3306 yum 安装 连接


前言

今天的目标很简单。就是在虚拟机中安装MYSQL,并且使用Navicat 连接数据库。

一、安装MYSQL

目前虚拟机已经安装CentOS 7,我只会PYTHON语言,所以框架使用FLASK。目前自学开发的微信小程序已经到一半,需要应用数据库对接,所以目标是 虚拟机安装数据库并且连接。好了,以下转别人的MYSQL安装流程。

1、下载并安装mysql的YUM源

下载mysql的YUM源:
wget -P /home/lisonglin http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm(wget命令:http://man.linuxde.net/wget)
在这里插入图片描述
由于我们是下载到/home/lisonglin目录下,所以先切换到该目录下:cd /home/lisonglin
安装mysql的YUM源:rpm -ivh mysql57-community-release-el7-11.noarch.rpm 在这里插入图片描述
检查mysql的YUM源是否安装成功:yum repolist enabled | grep “mysql.-community.
在这里插入图片描述
看到上图所示表示安装成功
选择要启用的mysql版本
查看mysql版本,执行:yum repolist all | grep mysql
可以看到 5.5, 5.6,8.0 版本是默认禁用的
在这里插入图片描述
可以通过类似下面的语句来启动或禁用某些版本
yum-config-manager --enable mysql57-community
yum-config-manager --disable mysql56-community
或者通过修改vim /etc/yum.repos.d/mysql-community.repo文件,改变默认安装的mysql版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0,然后再将5.6源的enabled=0改成enabled=1即可。
注意: 任何时候,只能启用一个版本。
查看当前的启用的 MySQL 版本:yum repolist enabled | grep mysql
在这里插入图片描述

2、安装MySQL

	yum install mysql-community-server
	安装过程中一直输入"y"就可以了,当出现下面的结果时,就代表mysql数据库安装成功了
	另外,如果yum下载很慢,将yum设置成国内源, 命令:
	curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

在这里插入图片描述

3、测试

	启动mysql服务:systemctl start mysqld
	登录进Mysql(我的刚安装完时没有密码):mysql -uroot或mysql
	![在这里插入图片描述](https://www.icode9.com/i/?i=20171219182205277#pic_center)
	如果出现错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
	则说明mysql安装完后给root用户生成了一个默认密码,所以你需要使用密码登录。
	mysql -uroot -p 回车 然后输入默认密码即可登录myql。
	关于如何查看默认密码,可以参考:[CentOS7.4中安装了Mysql5.7之后如何查看默认密码](https://blog.csdn.net/qq_32786873/article/details/80664160)
	可能用到的命令:
	systemctl start mysqld    #启动mysqld
	systemctl stop mysqld    #停止mysqld
	systemctl restart mysqld    #重启mysqld
	systemctl enable mysqld   #设置开机启动
	systemctl status mysqld    #查看 MySQL Server 状态

4、设置密码

	先mysql -uroot -p 输入密码登陆
	显示mysql> 后面输入
	ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘密码’;
	密码替换成自己的密码即可

5、Navicat连接数据库

一、遇到问题1,无法连接(防火墙问题)

接下来是可显示界面软件Navicat连接数据库。首先新建连接。如图
在这里插入图片描述
连接名随便写,IP名字填写虚拟机IP。关于如何获取虚拟机IP。
输入ifconfig
在这里插入图片描述
ens32的inet 就是虚拟机IP。
端口是MYSQL的默认端口3306.帐号密码是之前设置的ROOT账密。点击连接后发现出错了
在这里插入图片描述
图用其他人的。提示没法连接。百度了下以下方法可以解决。
问题原因:

导致些问题可能有以下几个原因:

1、网络不通;

2、服务未启动;

3、防火墙端口未开放;

解决方法:

启动服务:

首先,我用navicat去远程链接我虚拟机中的MySQL,链接测试失败。

然后在虚拟机中查看网络端口信息:

#netstat -ntpl
  在这里插入图片描述
iptables -vnL

查看防火墙的状态,查看3306端口,

如果3306如下,是drop状态,或者根本无3306端口,说明3306端口设置问题
在这里插入图片描述
解决办法:

启动服务:
service mysqld start;
开放防火墙端口
添加需要监听的端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
开启3306端口监听,开启后如下图

另外可以执行命令增加3306端口

远程访问 MySQL, 需开放默认端口号 3306.

firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --permanent --zone=public --add-port=3306/udp

执行firewall-cmd --reload使最新的防火墙设置规则生效

二、遇到问题2,无法连接(权限问题)

远程链接了一下MySQL,出现了以下错误,查了一下,是因为MySQL没有允许远程登陆,所以要授权MySQL远程登陆。
在这里插入图片描述
1.打开cmd窗口,登陆mysql,输入密码

mysql -uroot -p

2.使用mysql数据库

use mysql

3.查看结果中host一行中是否有%,如果有%,此行用户名允许远程登录。下图所示,白色框中表示允许远程登录的账号:
在这里插入图片描述
再查询下,有%就行
在这里插入图片描述
另外由于我安装的MYSQL是8.0的,无法SLECT选择password ,不过不看也没影响,设置好HOST就行。
设置好了后 刷新下

flush privileges;

最后使用Navicat连接把。我到这就可以连接上了。

参考文献:

https://blog.csdn.net/qq_26710805/article/details/79776897
https://blog.csdn.net/bianchengxiaoma/article/details/80800622
https://www.cnblogs.com/brankoliu/p/10845491.html

标签:--,虚拟机,MYSQL,mysqld,mysql,3306,yum,安装,连接
来源: https://blog.csdn.net/qq_39871719/article/details/118339875

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有