阿里云Mysql的连接与使用(终端直连、Navicat连接以及Java连接)

时间:2021-10-01 21:36:54

    写本文之前再次吐槽一下当今的大部分博文。他们仅仅是写给自己看的,写的极为随意,内容写一半不写一半。往往过一段时间之后他们自己回看自己的博文,都不知道自己写了啥。

    我尽量避免出现这种情况,并且努力地改善自己博文的写作水平,为人民服务。

    很多使用阿里云的ECS服务器时都不知道怎么使用在里面装好的mysql数据库。安装方法极为简单,跟linux下安装mysql的方法是一样的,这个大家可以谷歌一下就OK了。

    在介绍之前,建议大家在阿里云服务器上安装宝塔面板。使用宝塔面板可以很方便地安装mysql数据库(以及其他应用程序)。

    下面介绍阿里云ECS服务器上mysql数据库的三大连接使用方式:分别是终端直连、Navicat连接以及Java连接。


1. 直接在终端上连接:

    使用阿里云ECS的同志们常常会使用XShell来连接阿里云ECS使用。此时,在XShell终端中输入以下命令:

mysql -u 数据库名称 -p 数据库用户名

    执行该命令后,终端会提示要求输入密码。此时输入该数据库用户名对应的密码,回车即可成功在终端上连接到阿里云ECS服务器的mysql数据库了。

阿里云Mysql的连接与使用(终端直连、Navicat连接以及Java连接)

    下面讲一下如何在Navicat中连接该数据库。


2. Navicat连接:

    先吐槽一句。我一开始是跟着网上的博客教程学的。但是那些垃圾博客无个OK。要么就用大量的终端上的数据库“设置”来让人以为可以解决问题。但是试了半天无个OK的。假嘢!

    最简单而且确实可行、适合大家一看就懂、一用就OK的办法是:

    1) 用上面的方法1正确安装ECS服务器上的mysql。

    2)一定要安装最新版的Navicat软件。

    3)无需在ECS服务器上对mysql进行任何的设置(假如下面的步骤执行后意外地连接不上,请删掉mysql,重新安装,说明是把mysql“设置烂了”)。无需设置mysql权限什么的(默认权限是“本地服务器”)。

    4)在navicat中新建连接,连接属性如下:

    这里要注意,要在阿里云控制台中,把云服务器的防火墙的22和3306端口给开放了才行。

阿里云Mysql的连接与使用(终端直连、Navicat连接以及Java连接)

阿里云Mysql的连接与使用(终端直连、Navicat连接以及Java连接)

    这里大家会有些疑惑,这个“阿里云主机的用户名”是什么,“阿里云主机的密码”又是什么?其实是在阿里云控制台中可以找到的。密码也是大家设的,如下图:

阿里云Mysql的连接与使用(终端直连、Navicat连接以及Java连接)

    经过上述步骤,最新版的Navicat就可以成功连上阿里云ECS服务器上的mysql了。

    下面讲一下java里面又是怎么连接该数据库的:


3. Java连接:

    这种连接方式比上面两种要稍微复杂一些。但是,绝对不像某些博客所说的需要设置root用户、无密码登陆什么的一堆奇怪的东西,还要修改云服务器的my.cnf文件等复杂操作。那些都是我们不想要的。下面来讲述最为简单可靠的方法:

    1. 首先要确保阿里云服务器的3306端口是开放的,同时,mysql服务器的3306端口也是开放的。之前之所以推荐在阿里云服务器上安装宝塔面板,是因为“开放mysql服务器的3306端口”这个操作在宝塔面板上弄的话极为容易。如图所示地设置一下就OK了:

阿里云Mysql的连接与使用(终端直连、Navicat连接以及Java连接)

    2. 确保数据库的访问权限是“所有人”,该操作在宝塔面板上同样极为简单,如图所示:

阿里云Mysql的连接与使用(终端直连、Navicat连接以及Java连接)

    3. 配置好上述设置后,把“mysql-connector-java-5.1.41-bin.jar”的这个java连接mysql的库添加到eclipse的buildpath中(版本可以是其他,能用就行),然后就可以写java代码进行连接数据库了,代码如下:

package database;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class mysqlconnection {
	public static Connection getConn() {
		Connection conn = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection(
					"jdbc:mysql://阿里云服务器的ip地址:3306/你的数据库名称?useSSL=false&autoReconnect=true&failOverReadOnly=false&maxReconnects=10",
					"你的数据库的用户名", "该用户名对应的密码"); //使用时,将上述字符串出现中文的地方根据中文提示替换成你对应的信息即可
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}

	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		Connection conn = getConn();// 建立数据库连接对象
		System.out.println("OK");
	}
}

    解析:上面的mysql连接字符串中的“useSSL=false”意思是使用非SSL模式进行连接。不加的话会有警告提示。

    按照上面的步骤,执行上面的代码,即可在java中成功连接上阿里云服务器上的mysql了。


    后记:在写本文之前,我也深受网上很容易搜索到的质量很低的博客的困扰。那些博客一来复杂,夹杂着很多无用的步骤,二来究其不行的原因,其实并没有戳中问题的本质。本质是,用正确的方法在阿里云服务器上安装mysql,并且正确地开放端口、正确地设置mysql数据库的访问权限,即可顺利连接上数据库。并不需要设置root用户啊、绕过密码登陆数据库等复杂操作,更不需要修改my.cnf等数据库配置文件。我们知道,这些复杂的操作一旦操作时出了问题,会造成难以挽回的后果。最后再次推荐大家使用宝塔面板。结合宝塔面板,能让数据库的安装、配置与连接变得更加简单噢!

    最后再次提醒,很多人使用Navicat连接阿里云服务器的mysql数据库时出现弹框报错,此时请认真阅读上面的教程,要安装最新版的Navicat,即可解决一切问题。