数据库的启停与连接
# 30.数据库的启停与连接
安装完成,接下来就是数据库的管理了,例如启停、连接、创建和删除等。
# MySQL 的启停
如果判断 MySQL 是否运行中呢?
在 Windows 下,在我的电脑-管理,打开服务页面(也可以通过 Win + R 运行 services.msc,直接打开服务页面):
可以在右侧看到 Windows 正在运行的服务,其中就包含了 MySQL,目前状态是正在运行
这是因为我们之前安装的时候,配置了 Windows service。
可以在该服务上右键,来停止/启动/重启 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
2
3
4
5
6
启动 MySQL:
systemctl start mysqld
然后再次查看状态,可以看到状态为 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
....
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
2
说明:为 root@localhost 用户创建的密码是 O2.lvJhqPCgh
。root 是用户名,localhost 表明是本机连接。
知道密码后,就可以连接了:
mysql -uroot -p
说明:
- -uroo:u 是 user 的意思,root 是用户名,-uroot 表明通过 root 用户来连接数据库。
- -p:通过密码(password)来连接。
输入该命令后,提示输入密码(输入的密码是不可见的,只能看到一个个星号)。
也可以显示输入密码,在-p 后面直接带上密码即可(如果是工作中,请不要这么做):
-- 显示输入密码
mysql -uroot -pAa123132
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>
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.
修改密码的语法:
alter user 'root'@'localhost' identified by '密码';
注意密码不能太简单(例如 123456),不然不允许修改:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
2
当然也可以通过修改 MySQL 的配置,来允许弱密码,但不推荐这样做,因此这里不展开。
# 指定端口
在用命令行的方式连接的时候,没有指定端口,则默认连接的是 3306 端口;
如果要指定端口,使用 -P
参数,例如:
mysql -uroot -p -P 3307
# 指定 IP
如果 MySQL 服务器不是在本机,则需要指定 IP,使用 -h
参数,例如:
mysql -uroot -p -h 101.xx.xx.xx -P 3306
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
2
3
因此,我们可以新建一个用户,用来远程登录,语法:
create user '用户名'@'IP地址' identified by '密码';
说明:IP 地址相当于白名单,只有白名单里的 IP 才能连接本机的数据库,其他 IP 不允许。可以用百分号 %
来表示任何 IP 都能用该用户来远程连接。
例如,我们创建一个 admin 用户,密码是 Aa@123456
create user 'admin'@'%' identified by 'Aa@123456';
然后就可以通过远程的方式来连接了:
mysql -uadmin -p -h 101.xx.xx.xx -P 3306
注意:
- 如果连接的是 Linux 上的 MySQL,注意配置 Linux 的防火墙规则,允许 3306 端口。
- 如果连接的是云服务器上的 MySQL,则还需在云控制台上配置防火墙。
- 虽然也可以通过配置让 root 用户也可以被远程连接,但这样太危险,不建议这样做。
# 断开连接
使用 exit 或 quit 命令来断开连接。如:
mysql> exit
Bye
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)