【赵渝强老师】MySQL的连接方式

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 本文介绍了MySQL数据库服务器启动后的三种连接方式:本地连接、远程连接和安全连接。详细步骤包括使用root用户登录、修改密码、创建新用户、授权及配置SSL等。并附有视频讲解,帮助读者更好地理解和操作。

b017.png

MySQL数据库服务器成功启动后,可以通过多种不同的方式进行连接。连接方式主要有:本地连接、远程连接和安全连接。下面通过具体的步骤来演示如何使用它们。


视频讲解如下:


一、本地连接


(1)在CentOS的命令终端中直接输入下面的命令,并使用root用户登录MySQL,输入“/usr/local/mysql/data/error.log”中的临时密码。

mysql -uroot -p


(2)修改MySQL root用户的密码。

mysql> alter user 'root'@'localhost' identified by 'Welcome_1';


提示:这里将root用户密码修改为了“Welcome_1”。


(3)下面的语句将设置用户root远程登录。

mysql> create user 'root'@'%' identified by 'Welcome_1';
mysql> grant all on *.* to 'root'@'%';
mysql> flush privileges;



二、远程连接


这里我们创建一个新的用户“user001”,并且允许该用户远程登录后只能操作系统的“mysql”数据库。


(1)创建用户“user001”,密码是“Welcome_1”。

mysql> create user 'user001'@'%' identified by 'Welcome_1';


(2)为用户“user001”授权。

mysql> grant all on mysql.* to 'user001'@'%';
mysql> flush privileges;


(3)使用root用户查看系统的“user”表。

mysql> use mysql;
mysql> select host,user from user;
# 输出的信息如下:
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | root             |
| %         | user001          |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+


(4)使用root用户查看系统的“db”表。

mysql> use mysql;
mysql> select host,user,db from db where user='user001';
# 输出的信息如下:
+------+---------+-------+
| host | user    | db    |
+------+---------+-------+
| %    | user001 | mysql |
+------+---------+-------+


三、安全连接


MySQL默认的数据通道是不加密的,在一些安全性要求特别高的场景下,我们需要配置MySQL端口为SSL,使得数据通道加密处理,避免敏感信息泄漏和被篡改。当启用MySQL SSL之后,由于每个数据包都需要加密和解密,将对MySQL数据库的性能造成严重的影响。


提示:默认情况下,MySQL 8已经启用SSL的安全连接。如果没有启用SSL安全连接,MySQL提供了一个实用程序命令“mysql_ssl_rsa_setup”帮助启用和配置SSL的安全连接以及需要的证书。


下面通过具体的步骤来演示如何使用MySQL的SSL安全连接。


(1)使用MySQL的root用户登录,执行“status”语句检查是否启用了SSL的安全连接。

mysql> status;
# 输出的信息如下:
mysql  Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)
Connection id: 9
Current database:
Current user:     root@localhost
SSL:     Not in use
......

提示:root用户默认是不需要使用SSL的安全连接的。


(2)查看SSL参数状态,查看have_ssl为YES,这表示MySQL已经支持SSL的安全连接。

mysql> show variables like '%ssl%';
#输出的信息如下:
+--------------------+-----------------+
| Variable_name      | Value           |
+--------------------+-----------------+
| have_openssl       | YES             |
| have_ssl           | YES             |
| mysqlx_ssl_ca      |                 |
| mysqlx_ssl_capath  |                 |
| mysqlx_ssl_cert    |                 |
| mysqlx_ssl_cipher  |                 |
| mysqlx_ssl_crl     |                 |
| mysqlx_ssl_crlpath |                 |
| mysqlx_ssl_key     |                 |
| ssl_ca             | ca.pem          |
| ssl_capath         |                 |
| ssl_cert           | server-cert.pem |
| ssl_cipher         |                 |
| ssl_crl            |                 |
| ssl_crlpath        |                 |
| ssl_fips_mode      | OFF             |
| ssl_key            | server-key.pem  |
+--------------------+-----------------+


(3)创建一个用户,要求使用SSL的安全连接。

mysql> create user 'user002'@'%' identified by 'Welcome_1';
mysql> grant all on *.* to 'user002'@'%';
mysql> alter user 'user002'@'%' require ssl;


(4)查看是否开启强制用户使用SSL。

mysql> select user,host,ssl_type,ssl_cipher from mysql.user ;
#输出的信息如下:
+------------------+--------------+----------+------------------------+
| user             | host         | ssl_type | ssl_cipher             |
+------------------+--------------+----------+------------------------+
| mycat            | %            |          | 0x                     |
| root             | %            |          | 0x                     |
| user002          | %            | ANY      | 0x                     |
| myadmin          | 192.168.79.% |          | 0x                     |
| proxysql         | 192.168.79.% |          | 0x                     |
| repl             | 192.168.79.% |          | 0x                     |
| mysql.infoschema | localhost    |          | 0x                     |
| mysql.session    | localhost    |          | 0x                     |
| mysql.sys        | localhost    |          | 0x                     |
| root             | localhost    |          | 0x                     |
+------------------+--------------+----------+------------------------+


(5)客户端使用“user002”通过SSL安全连接方式连接MySQL。

mysql --ssl-ca=/usr/local/mysql/data/ca.pem \
--ssl-cert=/usr/local/mysql/data/client-cert.pem \
--ssl-key=/usr/local/mysql/data/client-key.pem \
-uuser002 -p



(6)输入user002的密码,登录后执行“status”语句检查是否启用了SSL的安全连接。

mysql> status;
#输出的信息如下:
mysql  Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)
Connection id:         13
Current database:
Current user:           user002@localhost
SSL:                  Cipher in use is TLS_AES_256_GCM_SHA384
Current pager:          stdout





相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 关系型数据库 MySQL
【赵渝强老师】执行MySQL的冷备份与冷恢复
冷备份是在数据库关闭状态下进行的备份,速度快且恢复简单,但备份期间数据库不可用。本文通过一个MySQL数据库的示例,详细演示了冷备份和恢复的步骤,包括备份文件、模拟错误、恢复数据等过程。
|
1月前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
154 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
30天前
|
关系型数据库 MySQL 网络安全
DBeaver连接MySQL提示Access denied for user ‘‘@‘ip‘ (using password: YES)
“Access denied for user ''@'ip' (using password: YES)”错误通常与MySQL用户权限配置或网络设置有关。通过检查并正确配置用户名和密码、用户权限、MySQL配置文件及防火墙设置,可以有效解决此问题。希望本文能帮助您成功连接MySQL数据库。
57 4
|
1月前
|
关系型数据库 MySQL 数据库
【赵渝强老师】MySQL的参数文件
MySQL启动时会读取配置文件my.cnf来确定数据库文件位置及初始化参数。该文件分为Server和Client两部分,包含动态与静态参数。动态参数可在运行中通过命令修改,而静态参数需修改my.cnf并重启服务生效。文中还提供了相关代码示例和视频教程。
|
1月前
|
SQL 关系型数据库 MySQL
【赵渝强老师】MySQL的全量日志文件
MySQL全量日志记录所有操作的SQL语句,默认禁用。启用后,可通过`show variables like %general_log%检查状态,使用`set global general_log=ON`临时开启,执行查询并查看日志文件以追踪SQL执行详情。
|
1月前
|
关系型数据库 MySQL 数据库
【赵渝强老师】MySQL的binlog日志文件
MySQL的binlog日志记录了所有对数据库的更改操作(不包括SELECT和SHOW),主要用于主从复制和数据恢复。binlog有三种模式,可通过设置binlog_format参数选择。示例展示了如何启用binlog、设置格式、查看日志文件及记录的信息。
142 6
|
1月前
|
SQL 关系型数据库 MySQL
【赵渝强老师】MySQL的慢查询日志
MySQL的慢查询日志用于记录执行时间超过设定阈值的SQL语句,帮助数据库管理员识别并优化性能问题。通过`mysqldumpslow`工具可查看日志。本文介绍了如何检查、启用及配置慢查询日志,并通过实例演示了慢查询的记录与分析过程。
164 3
|
1月前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的表空间
InnoDB是MySQL默认的存储引擎,主要由存储结构、内存结构和线程结构组成。其存储结构分为逻辑和物理两部分,逻辑存储结构包括表空间、段、区和页。表空间是InnoDB逻辑结构的最高层,所有数据都存放在其中。默认情况下,InnoDB有一个共享表空间ibdata1,用于存放撤销信息、系统事务信息等。启用参数`innodb_file_per_table`后,每张表的数据可以单独存放在一个表空间内,但撤销信息等仍存放在共享表空间中。
|
1月前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的段、区和页
MySQL的InnoDB存储引擎逻辑存储结构与Oracle相似,包括表空间、段、区和页。表空间由段和页组成,段包括数据段、索引段等。区是1MB的连续空间,页是16KB的最小物理存储单位。InnoDB是面向行的存储引擎,每个页最多可存放7992行记录。
|
1月前
|
关系型数据库 MySQL 测试技术
【赵渝强老师】MySQL的基准测试与sysbench
本文介绍了MySQL数据库的基准测试及其重要性,并详细讲解了如何使用sysbench工具进行测试。内容涵盖sysbench的安装、基本使用方法,以及具体测试MySQL数据库的步骤,包括创建测试数据库、准备测试数据、执行测试和清理测试数据。通过这些步骤,可以帮助读者掌握如何有效地评估MySQL数据库的性能。

相关产品

  • 云数据库 RDS MySQL 版