关系数据库MySQL版

实例连接方式介绍

2025-05-30 07:07:59

1.1.1.          通过命令行或客户端连接MySQL实例

前置要求

          已购买并创建MySQL实例,详细操作请参考如何创建MySQL实例

          已在实例中创建好数据库和账号,详细操作请参考如何创建数据库如何创建数据库用户

          已为实例设置好安全组,详细操作请参考如何设置安全组

使用命令行连接MySQL实例

本文以Linux系统为例连接MySQL实例,您需要在本地服务器或ECS服务器提前安装好MySQL。安装方法如下:

          CentOS:执行命令 sudo yum install mysql。

          Ubuntu:执行命令 sudo apt-get update,并执行 sudo apt install mysql-server。

提醒

如果您具备内网连接条件可直接使用内网地址连接MySQL实例,减小连接的延迟以获得最快的响应时间。

内网连接条件:当应用部署在弹性云服务器上,且该弹性云服务器与MySQL实例处于同一区域,同一VPC时,建议单独使用内网IP连接弹性云服务器与关系型数据库实例。

通过命令行连接MySQL实例

1.        登陆服务器连接MySQL实例,例如弹性云主机服务器或者本地服务器。

²  说明

创建并使用弹性云主机的方法请参考弹性云主机快速入门的创建弹性云主机

2.        执行连接MySQL实例命令。

mysql  -h
连接地址  -P端口  -u用户名  -p密码

参数说明:

          -h:主机IP,即关系数据库MySQL版“实例管理”页面该集群对应的实例列表中,主机的“连接地址”。

          -P:数据库端口,为“实例信息”页面中的数据库端口。

          -u:用户名,即 MySQL数据库帐号(默认管理员帐号为 root)。

          -p:密码,即MySQL数据库帐号对应的密码,为创建数据库实例时指定的密码,可以执行命令后输入,防止密码明文显示。

场景

需获取的RDS实例地址类型

获取方式

满足内网连接条件

RDS内网地址

访问控制中心的关系数据库MySQL版的“实例管理”页面,在上方选择地域,点击目标实例名称后在基本信息中查看内网地址与数据库端口。



1.从弹性云主机实例连接MySQL实例,但是不满足内网连接条件



2.从本地设备访问MySQL实例

RDS外网地址

访问目标实例名称后点击连接信息的连接管理后绑定弹性IP后获取外网地址。



图1:连接命令示例:

图2:连接成功:

²  说明

若连接MySQL失败,请查看文末常见的连接失败问题及解决方法

通过客户端连接MySQL实例

windows操作系统中,您可以通过使用MySQL客户端连接MySQL实例,本操作以MySQL Workbench 8.0.29为例,介绍如何通过客户端连接MySQL实例,其他客户端可以参考以下操作。

1.        到MySQL Workbench官网下载并安装MySQL Workbench。

2.        启动MySQL Workbench,打开Database > Connect to Database

3.        根据要求输入连接信息,点击OK完成连接。

参数说明:

          Hostname:MySQL实例的地址,需绑定弹性公网IP后获取外网地址。

          Port:数据库端口,为“实例信息”页面中的数据库端口。

          Username:用户名,即 MySQL数据库帐号(默认管理员帐号为 root)。

          Password:密码,即MySQL数据库帐号对应的密码,为创建数据库实例时指定的密码。

常见的连接失败问题与解决方法

报错信息

原因及其解决方法

mysql conmand not found

服务器未安装MySQL,可参考以下命令进行安装:

CentOS:执行命令sudo yum install   mysql。


Ubuntu:执行命令sudo apt-get   update,并执行sudo apt install mysql-server。


Access denied for use   'xxxx'(using password:YES)

输入的账号或密码错误,可在访问MySQL实例列表中查看对应目标实例ID的账号管理。

Unknown MySQL server host   'xxxx'

输入的MySQL实例地址错误,请重新确认地址。

Can't connect to mysql sever   on ‘xxxx’


Cannot Connect to Database   Server


Your connection attempt   failed for user ‘xxxx’ to the MySQL server

请根据连接场景重新确认RDS连接地址类型与安全组规则设置。

1.1.1.          通过应用程序连接MySQL实例

参数说明

示例程序代码中的参数说明如下:

参数

说明

host

MySQL实例的内网地址或外网地址。
1、内网地址:当应用部署在弹性云主机上,且该弹性云主机与MySQL实例处于同一区域,同一VPC时,建议单独使用内网IP连接弹性云主机与MySQL实例。
2、外网地址:其他情况均使用外网地址。

port

根据您使用的连接地址选择对应的端口。

yourDatabase

所连接的数据库名称。

yourUserName

所访问MySQL实例的账号名称。

yourPassword

所访问MySQL实例的账号对应的密码


示例程序代码

²  说明

以下示例程序代码以数据库中的User表为例,实际运行中请按照您的需求填写。

          Java代码示例:

以Maven为例,需要在pom.xml文件中导入DriverManager依赖,例如:

</dependency>
             <groupId>com.mysql</groupId>
             <artifactId>mysql-connector-j</artifactId>
             <version>8.1.0</version>
  </dependency>
import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
 import java.sql.Statement;
 
 public class DbConnection
 {
     public static void main(String args[]) {
         String connectionUrl= "jdbc:mysql://host:port/yourDatabase";
         
         ResultSet resultSet;
         try (Connection connection=DriverManager.getConnection(connectionUrl,"yourUsername","yourPassword");  
              Statement statement = connection.createStatement()) {
 
             //输入您想要执行的SQL
             String selectSql = "SELECT * FROM `User`";            。
             resultSet = statement.executeQuery(selectSql);
 
             //打印出查询结果中想要的列
             while (resultSet.next()) {
                 System.out.println(resultSet.getString("UserName"));
             }
         }
         catch (SQLException e) {
             e.printStackTrace();
         }
     }
 }

          Python3代码示例:

²  说明

          Python3安装命令:pip3 install PyMySQL

          Python2安装命令:pip install pymysql==0.9.3

import pymysql
 
 db_config = {
     'host': 'host',
     'user': 'user',
     'port':  port,
     'password': 'yourPassword',
     'database': 'yourDatabase'
 }
 connection = pymysql.connect(db_config)
 
 try:
     with connection.cursor() as cursor:
         # 输入您想要执行的SQL
         sql = "SELECT * FROM `User`"
         cursor.execute(sql)
         for result in cursor:
              print(result)
 finally:
     connection.close()

          C代码示例:

²  说明

运行环境需先安装mysql.h头文件,以CentOS为例,安装命令如下:

sudo yum install mysql-devel

#include <stdio.h>
 #include <mysql.h>
 #include <string.h>
 
 int main(void)
 {
     MYSQL *t_mysql;
 
     MYSQL_RES       *res = NULL;
     MYSQL_ROW       row;
     int             rc, i, fields;
     int             rows;
 
     char select[] = "select * from User";    // 输入希望执行的SQL。
     t_mysql = mysql_init(NULL);
 
     if(NULL == t_mysql){
         printf("init failed\n");
     }
 
     if(NULL == mysql_real_connect(t_mysql, "host", "yourUsername", "yourPassword", "yourDatabase",
             port>, NULL, 0)){
         printf("connect failed\n");
     }
 
     if(mysql_real_query(t_mysql, select, strlen(select)) != 0){
         printf("select failed\n");
     }
 
     res = mysql_store_result(t_mysql);
     if (NULL == res) {
          printf("mysql_restore_result(): %s\n", mysql_error(t_mysql));
          return 0;
     }
 
     fields = mysql_num_fields(res);
     while ((row = mysql_fetch_row(res))) {
         for (i = 0; i < fields; i++) {
             printf("%s\t", row[i]);
         }
         printf("\n");
     }
     mysql_close(t_mysql);
 
 }


7L7mVfhL9fwE