从 01 开始 从 01 开始
首页
  • 计算机简史
  • 数字电路
  • 计算机组成原理
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • MySQL
  • Git
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 输入法
  • 浏览器
  • 终端软件
  • 装机
  • 笔记类软件
  • Markdown
  • 微信
  • 各大平台
  • RSS
  • Office
  • 手机
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 教程简介
  • 英语学习方法论
  • 字母
  • 音标
  • 单词
  • 语法
  • 英语兔的相关视频
  • Larry 想做技术大佬的相关视频
  • 驾驶技能
  • 住房相关
  • 厨艺
  • 关于税
  • 理财
  • 睡眠
  • 皮肤
  • 口腔健康
  • 学会呼吸
  • 健身日志
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • 三国杀
  • 关于本站
  • 关于我
  • 网站动态
  • 友人帐
  • 打赏
  • 如何搭建一个博客
  • 关于邮件服务器
  • 本站的分享资料
  • 年度总结

    • 2022 年度总结
    • 2023 年度总结
  • 文章分类
  • 文章标签
  • 文章归档

PeterJXL

首页
  • 计算机简史
  • 数字电路
  • 计算机组成原理
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • MySQL
  • Git
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 输入法
  • 浏览器
  • 终端软件
  • 装机
  • 笔记类软件
  • Markdown
  • 微信
  • 各大平台
  • RSS
  • Office
  • 手机
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 教程简介
  • 英语学习方法论
  • 字母
  • 音标
  • 单词
  • 语法
  • 英语兔的相关视频
  • Larry 想做技术大佬的相关视频
  • 驾驶技能
  • 住房相关
  • 厨艺
  • 关于税
  • 理财
  • 睡眠
  • 皮肤
  • 口腔健康
  • 学会呼吸
  • 健身日志
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • 三国杀
  • 关于本站
  • 关于我
  • 网站动态
  • 友人帐
  • 打赏
  • 如何搭建一个博客
  • 关于邮件服务器
  • 本站的分享资料
  • 年度总结

    • 2022 年度总结
    • 2023 年度总结
  • 文章分类
  • 文章标签
  • 文章归档
  • 计算机历史

  • 数字电路

  • 计算机组成原理

  • 操作系统

  • Linux

  • 计算机网络

  • Git

  • 计算机小知识

  • MySQL

    • 教程概述
    • 数据的存储
    • 数据库的安装
    • 数据库的启停与连接
      • MySQL的启停
      • 通过命令行连接
      • 开启远程访问
      • 断开连接
      • 数据库连接工具
      • 相关文章
    • 数据库的管理
    • SQL概述
    • 表的管理
    • seletct基础
    • 运算符
    • 聚合查询
    • 排序
    • 数据的插入
    • 数据的删除
    • 数据的更新
    • 事务
    • 视图
    • 子查询
    • 函数
    • 谓词
    • CASE表达式
    • 集合运算
    • 联结-join
    • SQL入门小结
    • 更多数据库
    • MySQL的数据类型
    • 命令行的一些用法
    • 用户与权限管理
    • MySQL的权限管理
    • mysqldump
    • mysqladmin
    • Liquibase
    • 表注释与字段注释
    • 编码类型
  • 计算机基础
  • MySQL
2024-01-21
目录

数据库的启停与连接

# 30.数据库的启停与连接

安装完成,接下来就是数据库的管理了,例如启停、连接、创建和删除等

‍

‍

# MySQL的启停

如果判断MySQL是否运行中呢?

在Windows下,在我的电脑-管理:

‍

然后打开服务页面,可以在右侧看到Windows正在运行的服务,其中就包含了MySQL,目前状态是正在运行

这是因为我们之前安装的时候,配置了Windows service。

‍

也可以运行 services.msc,直接打开该页面

‍

可以在该服务上右键,来停止/启动/重启MySQL。

‍

‍

在Linux下,可以通过systemctl工具来控制MySQL。

查看状态:inactive表示没启动

$ systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
1
2
3
4
5
6

‍

启动MySQL:

systemctl start mysqld
1

‍

然后再次查看状态,可以看到状态为active了,也就是启动了

[root@iZbp15znu62vc5m204xkp1Z ~]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2023-11-12 12:01:49 CST; 2s ago
 ....
1
2
3
4
5

‍

停止:systemctl stop mysqld

重启:systemctl restart mysqld,或者先 stop 后再 start

‍

‍

在操作数据库之前,需要先连接上数据库。接下来讲讲如何连。

‍

‍

‍

# 通过命令行连接

‍

# Linux下连接

在Linux下安装MySQL后,会生成一个随机的初始密码(在Mac上安装的话同理),存储在日志文件中,可以通过grep来搜索:

$ grep 'temporary password' /var/log/mysqld.log
2023-11-12T04:01:43.278875Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: O2.lvJhqPCgh
1
2

说明:为root@localhost用户创建的密码是 O2.lvJhqPCgh。root是用户名,localhost表明是本机连接

‍

‍

知道密码后,就可以连接了:

 mysql -uroot -p
1

说明:

  • -uroo:u是user的意思,root是用户名,-uroot表明通过root用户来连接数据库。
  • -p:通过密码(password)来连接。

输入该命令后,提示输入密码(输入的密码是不可见的,只能看到一个个星号)。

也可以显示输入密码,在-p后面直接带上密码即可(如果是工作中,请不要这么做):

-- 显示输入密码
mysql -uroot -pAa123132
1
2

‍

输入完初始密码后,就能连接上MySQL了。连接成功后,就会显示MySQL的一些连接信息,版本信息等,然后在mysql> 后面就可以输入SQL来操作数据库了。

$ mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.35

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

‍

‍

# Windows上连接

如果是在Windows上安装了数据库,可以在开始菜单找到MySQL相关的菜单,我们选择命令行的方式(Command Line Client,CLI):

可以看到有两个CLI,这是因为我安装了2个MySQL,所以才有2个

‍

然后输入密码(安装时配置的),就能连接上了:

‍

‍

也可以打开终端,用命令的方式连接:

‍

‍

‍

# 修改密码

在Linux上的MySQL,要执行SQL之前必须先修改默认的初始密码,否则会报错:

RROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
1

‍

修改密码的语法:

alter user 'root'@'localhost' identified by '密码';
1

‍

注意密码不能太简单(例如123456),不然不允许修改:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
1
2

‍

当然也可以通过修改MySQL的配置,来允许弱密码,这里不展开

‍

# 指定端口

在用命令行的方式连接的时候,没有指定端口,则默认连接的是3306端口;

如果要指定端口,使用-P参数,例如:

mysql -uroot -p  -P 3307
1

‍

‍

# 指定IP

如果MySQL服务器不是在本机,则需要指定IP,使用-h参数,例如:

mysql -uroot -p  -h 101.xx.xx.xx -P 3306
1

‍

‍

ps:如果是在Linux上安装了两个MySQL,有时候会出现指定端口失败的情况。这是因为默认使用3306端口,链接成功后,则不使用 -P指定的端口了。

解决方法:加 -h指定IP,使 -P参数起效。

‍

‍

# 开启远程访问

由于安全考虑,因为root用户权限极大,root用户默认是只能在本机连接上的。其他用户来连接只会有报错:

mysql -uroot -p  -h 101.xx.xx.xx -P 3306
Enter password: ***********
ERROR 1130 (HY000): Host '116.xx.xx.xx' is not allowed to connect to this MySQL server
1
2
3

‍

因此,我们新建一个用户,用来远程登录,语法:

create user '用户名'@'IP地址' identified by '密码';
1

说明:IP地址相当于白名单,只有白名单里的IP才能连接本机的数据库,其他IP不允许。可以用百分号%来表示任何IP都能用该用户来远程连接。

‍

例如,我们创建一个admin用户,密码是Aa@123456

create user 'admin'@'%' identified by 'Aa@123456';
1

‍

然后就可以通过远程的方式来连接了:

 mysql -uadmin -p  -h 101.xx.xx.xx -P 3306
1

‍

‍

特别:如果连接的是Linux上的MySQL,注意配置Linux的防火墙规则,允许3306端口。如果是云服务器则还需在云控制台上配置防火墙。

‍

‍

# 断开连接

使用 exit 或 quit 命令来断开连接。如:

mysql> exit
Bye
1
2

‍

‍

‍

‍

# 数据库连接工具

除了使用命令行的方式,市面上还有很多可视化工具。使用这些工具好处也很多:

  • 可以管理多个连接,不用每次都指定IP、端口、输入密码;
  • 可以通过可视化的方式来查看数据,不用逐个输入命令
  • SQL自动补全
  • ........

‍

‍

常见的工具有:

  • Navicat (opens new window):好用,非常流行,不过收费,比较贵(几千元,逢年过节会打一点折,可以通过订阅邮件来关注打折信息)。市面上有很多破解版。
  • Chat2DB (opens new window):阿里开发的一个数据库管理系统,结合了AI,功能强大。
  • Dbeaver (opens new window):免费,流行
  • Beekeeper Studio (opens new window):流行,跨平台的数据库管理工具。
  • .................

按需选择一款即可,不用花太多时间去纠结。

‍

‍

‍

# 相关文章

  • mysql -P端口号无效 遇坑记录 - 简书 (opens new window)
  • MySQL 8.0的Public Key Retrival错误,毫无规律可言怎么破? (opens new window):一个偶发性的错误
  • 再见收费的Navicat!这款开源的数据库管理工具界面更炫酷! (opens new window)
  • 几种常用的MySQL图形化管理工具介绍使用和下载-CSDN博客 (opens new window)
  • dbeaver 使用教程(简版) - 简书 (opens new window)
  • 11 款超赞的 MySQL 图形化工具,好用! (opens new window)

‍

上次更新: 2024/5/30 15:25:05
数据库的安装
数据库的管理

← 数据库的安装 数据库的管理→

Theme by Vdoing | Copyright © 2022-2024 | 粤 ICP 备 2022067627 号-1 | 粤公网安备 44011302003646 号 | 点击查看十年之约
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式